Realpython.com - SEO Checker

Overview of the SEO Check
Meta information
100% 
Page quality
48% 
Page structure
100% 
Link structure
27% 
Server
99% 
External factors
100% 
SEO Score
Response time
0.42 s
File size
67.20 kB
Words
509
Media files
21
Number of links
154 internal / 5 external

Task list of SEO Improvements

Meta specifications

Title
(Critically important)
Python Tutorials – Real Python
The length of the page title is perfect. (279 pixels out of 580 max pixel length)
There are no duplicate words in the title
Meta description
(Critically important)
Learn Python online: Python tutorials for developers of all skill levels, Python books and courses, Python news, code examples, articles, and more.
The length of the meta description is perfect. (902 pixels out of 1000 max pixel length)
Crawlability
(Critically important)
There are no problems in accessing the website.
Canonical URL
(Important)
https://realpython.com/
There is a valid canonical link specified.
Language
(Somewhat important)
Language detected in text: en
Language defined in HTML: en
Server location: United States of America
The following language is defined by HTML: en
Alternate/Hreflang Links
(Somewhat important)
There are no alternate links specified on this page.
Other meta tags
(Somewhat important)
There is no rel next meta tag on this page.
There is no rel prev meta tag on this page.
Domain
(Somewhat important)
The domain is no subdomain.
The domain length is good.
The domain does not contain non-latin characters.
Page URL
(Somewhat important)
No parameters were found in the URL.
No session ID was found in the URL.
The URL does not have too many subdirectories.
Charset encoding
(Somewhat important)
The charset encoding (UTF-8) is set correctly.
Doctype
(Nice to have)
The doctype HTML 5 is set correctly.
The doctype is placed at first in the HTML code.
Favicon
(Nice to have)
The favicon is linked correctly.

Meta tags

NameValue
authorReal Python
descriptionLearn Python online: Python tutorials for developers of all skill levels, Python books and courses, Python news, code examples, articles, and more.
keywordsEmpty
viewportwidth=device-width, initial-scale=1, shrink-to-fit=no, viewport-fit=cover
langen
twitter:cardsummary
twitter:creator@realpython
twitter:site@realpython
twitter:imagehttps://realpython.com/static/social-default-image.5e1aa4786b3a.png
og:imagehttps://realpython.com/static/social-default-image.5e1aa4786b3a.png
og:titlePython Tutorials – Real Python
og:typewebsite
og:urlhttps://realpython.com/
og:descriptionLearn Python online: Python tutorials for developers of all skill levels, Python books and courses, Python news, code examples, articles, and more.
charsetutf-8

Test up to 1.000 webpages of realpython.com with our free plan!

Try For Free
No trial. It's just free!

Page quality

Content
(Critically important)
Only 1 paragraph/s was/were found on this page.
The average number of words per sentence of 45 words is high.
This page contains 509 words. That's ok.
18.1% of the text are stop words.
Keywords used in the page title are also used in the page content. That's good!
Words from the H1 heading are used in the page content.
The page contains a listing, which indicates a good text layout.
No placeholders texts or images were found.
There are no duplicates on the site.
Frames
(Critically important)
This page does not use a frameset.
Mobile optimization
(Somewhat important)
No Apple touch icon is specified.
A viewport "width=device-width, initial-scale=1, shrink-to-fit=no, viewport-fit=cover" is provided.
Bold and strong tags
(Somewhat important)
The usage of strong and bold tags is perfect. We recommend the use of up to 10 tags for this page.
Image SEO
(Somewhat important)
Alt text (alternative text) is correctly used on all found images.
Social Networks
(Nice to have)
There are only a few social sharing widgets on the page. Make your website popular in social networks with social sharing widgets.
Additional markup
(Nice to have)
No additional page markup was found.
HTTPS
(Somewhat important)
This website uses HTTPS to protect privacy and integrity of the exchanged data.
All included files are also transferred via HTTPS.

Media list

URLAlt attributeTitle
/static/real-python-logo.893c30edea53.svgReal Python
...hon-Year-in-Review-2024.728cae250ba8.jpgLearn From 2024's Most Popular Python Tutorials and Courses
/static/pytrick-dict-merge.4201a0125a5e.pngPython Tricks Dictionary Merge
...o-Tutorials_Watermarked.2ecff49f3456.jpgPython Django Tutorials Artwork
...Python-List_Watermarked.bf5f1e1f4324.jpgHow to Remove Items From Lists in Python
...a-in-Python_Watermarked.66a8fdcb8859.jpgWorking With JSON Data in Python
...a-in-Python_Watermarked.797803948b10.jpgStrings and Character Data in Python
...What-is-PIP_Watermarked.4944e95d83ad.jpgUsing Python's pip to Manage Your Projects' Dependencies
...st-of-Lists_Watermarked.2f9407737589.jpgHow to Flatten a List of Lists in Python
...s-in-Python_Watermarked.e3dd34457952.jpgBasic Data Types in Python
...eb-Scraping_Watermarked.f8d56f56c22c.jpgWeb Scraping in Python
...ment-System_Watermarked.d1f4ed419f6e.jpgGet Started With Django Part 2: Django User Management
...ts-Tutorial_Watermarked.aebb960a567a.jpgPython Socket Programming
...s-in-Python_Watermarked.3656a2293c00.jpgDictionaries in Python
...ns-property_Watermarked.a888a85a9cd8.jpgPython's property(): Add Managed Attributes to Your Classes
...thon-Poetry_Watermarked.65cfb7df07f7.jpgDependency Management With Python and Poetry
...g-in-Python_Watermarked.6cf327c51434.jpgPython Classes: The Power of Object-Oriented Programming
...in-Python-3_Watermarked.0d29780806d5.jpgOOP in Python 3
...ythons-enum_Watermarked.bbcd46a82f58.jpgBuild Enumerations of Constants With Python's Enum
...L-in-Python_Watermarked.9dec9dfe8fd1.jpgYAML: The Missing Battery in Python
...-3.8-UPDATE_Watermarked.d7eee1fde3ea.jpgThe Walrus Operator: Python's Assignment Expressions

Page structure

H1 heading
(Critically important)
Real Python Tutorials
The H1 heading is perfect.
Headings
(Important)
The heading structure is perfect.

Heading structure

Heading levelContent
H1 Real Python Tutorials
H2 Learn From 2024's Most Popular Python Tutorials and Courses
H2 Explore Real Python
H2 New Releases
H2 Building HTTP APIs With Django REST Framework
H2 How to Remove Items From Lists in Python
H2 Working With JSON Data in Python
H2 Strings and Character Data in Python
H2 Using Python's pip to Manage Your Projects' Dependencies
H2 How to Flatten a List of Lists in Python
H2 Basic Data Types in Python: A Quick Exploration
H2 A Practical Introduction to Web Scraping in Python
H2 Get Started With Django User Management
H2 Programming Sockets in Python
H2 Dictionaries in Python
H2 Python's property(): Add Managed Attributes to Your Classes
H2 Dependency Management With Python Poetry
H2 Python Classes: The Power of Object-Oriented Programming
H2 Object-Oriented Programming (OOP) in Python
H2 Build Enumerations of Constants With Python's Enum
H2 YAML: The Missing Battery in Python
H2 The Walrus Operator: Python's Assignment Expressions
Some internal links have dynamic parameters. All internal URLs, which are not marked as nofollow, should not contain dynamic parameters.
Some anchor texts are used more than once.
The number of internal links is ok.
None of the anchor texts is too long.
There are 5 external links on this page.
LinkAttributesAnchor text
https://realpython.com/IMG-ALT Real Python
/start-here/Start Here
/search?kind=article&kind=cour...Python Tutorials → In-depth articles and video courses
/learning-paths/Learning Paths → Guided study plans for accelerated learning
https://realpython.com/quizzes/Quizzes → Check your learning progress
/tutorials/all/Browse Topics → Focus on a specific area or skill level
https://realpython.com/community/Community Chat → Learn with other Pythonistas
/office-hours/Office Hours → Live Q&A calls with Python experts
/podcasts/rpp/Podcast → Hear what’s new in the world of Python
/products/books/Books → Round out your knowledge and learn offline
https://realpython.com/mentor/Code Mentor →Beta Personalized code assistance & learning tools
/account/join/Unlock All Content →
/learner-stories/Learner Stories
/newsletter/Python Newsletter
https://www.pythonjobshq.com/New window External Subdomain Python Job Board
https://realpython.com/team/Meet the Team
/write-for-us/Become a Tutorial Writer
/become-an-instructor/Become a Video Instructor
https://realpython.com/searchSearch
A-TITLE Search
https://realpython.com/searchText duplicate A-TITLE Search
/account/join/Join
/account/login/?next=/Sign‑In
/popular-python-tutorials-2024/NEW
IMG-ALT Learn From 2024's Most Popular Python Tutorials and Courses
/popular-python-tutorials-2024/Learn From 2024's Most Popular Python Tutorials and Courses
/tutorials/basics/basics
/tutorials/community/community
/tutorials/all/Browse Topics
/learning-paths/Guided Learning Paths
/search?level=basicsBasics
/search?level=intermediateIntermediate
/search?level=advancedAdvanced
/tutorials/api/api
/tutorials/best-practices/best-practices
/tutorials/career/career
/tutorials/community/Text duplicate community
/tutorials/databases/databases
/tutorials/data-science/data-science
/tutorials/data-structures/data-structures
/tutorials/data-viz/data-viz
/tutorials/devops/devops
/tutorials/django/django
/tutorials/docker/docker
/tutorials/editors/editors
/tutorials/flask/flask
/tutorials/front-end/front-end
/tutorials/gamedev/gamedev
/tutorials/gui/gui
/tutorials/machine-learning/machine-learning
/tutorials/numpy/numpy
/tutorials/projects/projects
/tutorials/python/python
/tutorials/testing/testing
/tutorials/tools/tools
/tutorials/web-dev/web-dev
/tutorials/web-scraping/web-scraping
/learning-paths/Learning Paths Guided study plans for accelerated learning
/search?kind=article&kind=cour...Python Tutorials In-depth articles and step-by-step video courses
https://realpython.com/quizzes/Quizzes Evaluate your Python knowledge with quick tests
/tutorials/all/Browse Topics Focus on a specific area or skill level
https://realpython.com/community/Community Chat Learn with other Pythonistas
/office-hours/Office Hours Live Q&A calls with experts from Real Python
/podcasts/rpp/Podcast Hear what’s new in the world of Python
/products/books/Books Round out your knowledge and learn offline
https://realpython.com/searchText duplicate A-TITLE Search
/search?order=newestNew Releases
/search?order=newestView All »
/courses/django-rest-framework/IMG-ALT Python Django Tutorials Artwork
/courses/django-rest-framework/Building HTTP APIs With Django REST Framework
/tutorials/advanced/advanced
/tutorials/api/Text duplicate api
/tutorials/django/Text duplicate django
/tutorials/web-dev/Text duplicate web-dev
/remove-item-from-list-python/IMG-ALT How to Remove Items From Lists in Python
/remove-item-from-list-python/Text duplicate How to Remove Items From Lists in Python
/tutorials/basics/Text duplicate basics
/tutorials/python/Text duplicate python
/python-json/IMG-ALT Working With JSON Data in Python
/python-json/Text duplicate Working With JSON Data in Python
/tutorials/intermediate/intermediate
/tutorials/python/Text duplicate python
/python-strings/IMG-ALT Strings and Character Data in Python
/python-strings/Text duplicate Strings and Character Data in Python
/tutorials/basics/Text duplicate basics
/tutorials/python/Text duplicate python
/what-is-pip/IMG-ALT Using Python's pip to Manage Your Projects' Dependencies
/what-is-pip/Text duplicate Using Python's pip to Manage Your Projects' Dependencies
/tutorials/basics/Text duplicate basics
/tutorials/tools/Text duplicate tools
/python-flatten-list/IMG-ALT How to Flatten a List of Lists in Python
/python-flatten-list/Text duplicate How to Flatten a List of Lists in Python
/tutorials/intermediate/Text duplicate intermediate
/tutorials/data-science/Text duplicate data-science
/account/join/Nofollow Remove ads
/python-data-types/IMG-ALT Basic Data Types in Python
/python-data-types/Basic Data Types in Python: A Quick Exploration
/tutorials/basics/Text duplicate basics
/tutorials/python/Text duplicate python
/python-web-scraping-practical...IMG-ALT Web Scraping in Python
/python-web-scraping-practical...A Practical Introduction to Web Scraping in Python
/tutorials/intermediate/Text duplicate intermediate
/tutorials/web-scraping/Text duplicate web-scraping
/django-user-management/IMG-ALT Get Started With Django Part 2: Django User Management
/django-user-management/Get Started With Django User Management
/tutorials/intermediate/Text duplicate intermediate
/tutorials/django/Text duplicate django
/courses/programming-sockets/IMG-ALT Python Socket Programming
/courses/programming-sockets/Programming Sockets in Python
/tutorials/advanced/Text duplicate advanced
/tutorials/python/Text duplicate python
/tutorials/web-dev/Text duplicate web-dev
/python-dicts/IMG-ALT Dictionaries in Python
/python-dicts/Text duplicate Dictionaries in Python
/tutorials/basics/Text duplicate basics
/tutorials/python/Text duplicate python
/python-property/IMG-ALT Python's property(): Add Managed Attributes to Your Classes
/python-property/Text duplicate Python's property(): Add Managed Attributes to Your Classes
/tutorials/intermediate/Text duplicate intermediate
/tutorials/best-practices/Text duplicate best-practices
/tutorials/python/Text duplicate python
/dependency-management-python-...IMG-ALT Dependency Management With Python and Poetry
/dependency-management-python-...Dependency Management With Python Poetry
/tutorials/intermediate/Text duplicate intermediate
/tutorials/best-practices/Text duplicate best-practices
/tutorials/devops/Text duplicate devops
/tutorials/tools/Text duplicate tools
/python-classes/IMG-ALT Python Classes: The Power of Object-Oriented Programming
/python-classes/Text duplicate Python Classes: The Power of Object-Oriented Programming
/tutorials/intermediate/Text duplicate intermediate
/tutorials/python/Text duplicate python
/python3-object-oriented-progr...IMG-ALT OOP in Python 3
/python3-object-oriented-progr...Object-Oriented Programming (OOP) in Python
/tutorials/intermediate/Text duplicate intermediate
/tutorials/python/Text duplicate python
/python-enum/IMG-ALT Build Enumerations of Constants With Python's Enum
/python-enum/Text duplicate Build Enumerations of Constants With Python's Enum
/tutorials/intermediate/Text duplicate intermediate
/tutorials/data-structures/Text duplicate data-structures
/tutorials/python/Text duplicate python
/python-yaml/IMG-ALT YAML: The Missing Battery in Python
/python-yaml/Text duplicate YAML: The Missing Battery in Python
/tutorials/intermediate/Text duplicate intermediate
/python-walrus-operator/IMG-ALT The Walrus Operator: Python's Assignment Expressions
/python-walrus-operator/Text duplicate The Walrus Operator: Python's Assignment Expressions
/tutorials/intermediate/Text duplicate intermediate
/tutorials/best-practices/Text duplicate best-practices
https://realpython.com/searchText duplicate A-TITLE Search
/account/join/Nofollow Text duplicate Remove ads
/newsletter/Newsletter
/podcasts/rpp/Podcast
https://www.youtube.com/realpy...External Subdomain YouTube
https://twitter.com/realpythonExternal Twitter
https://facebook.com/LearnReal...External Facebook
https://www.instagram.com/real...External Subdomain Instagram
https://realpython.com/Python Tutorials
https://realpython.com/searchText duplicate Search
/privacy-policy/Privacy Policy
/energy-policy/Energy Policy
/sponsorships/Advertise
https://realpython.com/contact/Contact

Server configuration

HTTP redirects
(Critically important)
This page redirects to "https://realpython.com/"
HTTP header
(Important)
No X-Powered HTTP header is sent.
This page uses GZip for compressed data transmission.
Performance
(Somewhat important)
The page response time of 0.42 seconds is longer than the recommended limit of 0.4 seconds. A high response time unnecessarily slows down search engine crawling and results in bad user experience as well.
The file size of the HTML document is fine (67 kB).

HTTP Response Header

NameValue
dateSun, 05 Jan 2025 14:59:38 GMT
content-typetext/html; charset=utf-8
content-length9848
report-to{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1736089178&sid=67ff5de4-ad2b-4112-9289-cf96be89efed&s=mwWyhwpwOe5zDkCqUmdU2Xx8PWfMneAottPA5AAx80I%3D"}]}
reporting-endpointsheroku-nel=https://nel.heroku.com/reports?ts=1736089178&sid=67ff5de4-ad2b-4112-9289-cf96be89efed&s=mwWyhwpwOe5zDkCqUmdU2Xx8PWfMneAottPA5AAx80I%3D
nel{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}
x-frame-optionsSAMEORIGIN
varyCookie, Accept-Encoding
strict-transport-securitymax-age=31536000; includeSubDomains; preload
x-content-type-optionsnosniff
referrer-policystrict-origin-when-cross-origin,origin
cross-origin-opener-policysame-origin
content-encodinggzip
set-cookie129 Characters
via1.1 vegur
cf-cache-statusDYNAMIC
servercloudflare
cf-ray8fd45556ed3f034e-CDG
alt-svch3=":443"; ma=86400
statuscode200
http_versionHTTP/2

External factors

This page is referenced by wikipedia.
This website has excellent links from other websites.
This page has backlinks from 11,222 referring domains.
This page has 1,088,780 backlinks.
This page has backlinks from 6,651 different ip addresses.

Robots.txt

User-agent: *
Disallow: 
Disallow: /search
Disallow: *?q=*
Disallow: */api/v*
Disallow: /account/*/login/
Disallow: /account/*next=
Disallow: /feedback/*
Disallow: /practice/*
Disallow: /preview/*
Disallow: /quizzes/*/*/

Sitemap: https://realpython.com/sitemap.xml

Search preview

realpython.com
Python Tutorials – Real Python
Learn Python online: Python tutorials for developers of all skill levels, Python books and courses, Python news, code examples, articles, and more.

Most important keywords

Following keywords were found. You can check the keyword optimization of this page for each keyword.

KeywordResultRecheck
Python85%Check
Tutorials81%Check
Real81%Check
Python Tutorials79%Check
Real Python79%Check
Real Python Tutorials77%Check
Learn Python66%Check
Python Django61%Check
using Python60%Check
Python Tricks60%Check

Test up to 1.000 webpages of realpython.com with our free plan!

Try For Free
No trial. It's just free!

Cookie Policy

We use cookies to make our site work and also for analytics and advertising purposes. You can enable or disable optional cookies as desired. See the following links for more information.

We need these so the site can function properly

So we can better understand how visitors use our website

So we can serve you tailored ads and promotions