Refactoring.guru - SEO Checker

Overview of the SEO Check
Meta information
80% 
Page quality
75% 
Page structure
95% 
Link structure
92% 
Server
100% 
External factors
100% 
SEO Score
Response time
0.07 s
File size
68.90 kB
Words
685
Media files
9
Number of links
189 internal / 10 external

Task list of SEO Improvements

Meta specifications

Title
(Critically important)
Refactoring and Design Patterns
The length of the page title is perfect. (294 pixels out of 580 max pixel length)
There are no duplicate words in the title
Meta description
(Critically important)
Refactoring is a controllable process of improving code without creating new functionality. Design Patterns are typical solutions to the commonly occurring problems in software design.
The meta description is too long: 1128 pixels from max. 1000 pixels. Optimize description
Crawlability
(Critically important)
There are no problems in accessing the website.
Canonical URL
(Important)
No canonical link is 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)
The specified alternate links have no errors.
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
viewportwidth=device-width, initial-scale=1, shrink-to-fit=no
theme-color#A2E2FD
descriptionRefactoring is a controllable process of improving code without creating new functionality. Design Patterns are typical solutions to the commonly occurring problems in software design.
langen
fb:app_id666819623386327
og:typewebsite
og:imagehttps://refactoring.guru/images/refactoring/social/facebook-share-preview.png?id=dbf9e98269595be86eb668f365be6868
charsetutf-8

Test up to 1.000 webpages of refactoring.guru with our free plan!

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

Page quality

Content
(Critically important)
Words from the H1 heading are not used in the page content.
This page contains 685 words. That's ok.
22% of the text are stop words.
Keywords used in the page title are also used in the page content. That's good!
The page contains a listing, which indicates a good text layout.
6 paragraphs were found on this page.
No placeholders texts or images were found.
There are no duplicates on the site.
The average number of words per sentence of 12 words is good.
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" is provided.
Bold and strong tags
(Somewhat important)
Empty bold or strong tags were found on this page.
Image SEO
(Somewhat important)
2 images have no alt attribute. The content of alt attributes is used by search engines.
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.

Page structure

H1 heading
(Critically important)
Hello, world!
The H1 heading is too short (13 characters). It should be at least 20 Characters long.
Headings
(Important)
The heading structure is perfect.

Heading structure

Heading levelContent
H1 Hello, world!
H2 Refactoring
H2 Design Patterns
H3 Subscribe for updates
H3 Facebook page
Some anchor texts are used more than once.
There are 1 links with a trivial anchor text.
The number of internal links is ok.
None of the anchor texts is too long.
All internal links are not using dynamic parameters.
There are 10 external links on this page.
LinkAttributesAnchor text
https://refactoring.guru/storeSummer SALE
https://refactoring.guru/Anchor No Text
https://refactoring.guru/Anchor No Text
/sendy/formNofollow email
A-TITLE Refactoring.guru email list
https://www.facebook.com/refac...External Subdomain Facebook
A-TITLE Refactoring.guru Facebook page
https://www.facebook.com/refac...External Subdomain IMG-ALT Facebook page
/refactoringIMG-ALT Refactoring section thumbnail.
/refactoringMore about Refactoring »
/design-patternsIMG-ALT Design Patterns section thumbnail.
/design-patternsMore about Design Patterns »
https://refactoring.guru/IMG-ALT Refactoring.Guru
https://refactoring.guru/storePremium Content
/design-patterns/bookDesign Patterns eBook
/refactoring/courseRefactoring Course
/refactoringRefactoring
/refactoring/what-is-refactoringWhat is Refactoring
/refactoring/what-is-refactoringClean code
/refactoring/technical-debtTechnical debt
/refactoring/whenWhen to refactor
/refactoring/how-toHow to refactor
/refactoring/catalogCatalog
/refactoring/smellsCode Smells
/refactoring/smells/bloatersBloaters
/smells/long-methodLong Method
/smells/large-classLarge Class
/smells/primitive-obsessionPrimitive Obsession
/smells/long-parameter-listLong Parameter List
/smells/data-clumpsData Clumps
/refactoring/smells/oo-abusersObject-Orientation Abusers
/smells/switch-statementsSwitch Statements
/smells/temporary-fieldTemporary Field
/smells/refused-bequestRefused Bequest
/smells/alternative-classes-wi...Alternative Classes with Different Interfaces
/refactoring/smells/change-pre...Change Preventers
/smells/divergent-changeDivergent Change
/smells/shotgun-surgeryShotgun Surgery
/smells/parallel-inheritance-h...Parallel Inheritance Hierarchies
/refactoring/smells/dispensablesDispensables
/smells/commentsComments
/smells/duplicate-codeDuplicate Code
/smells/lazy-classLazy Class
/smells/data-classData Class
/smells/dead-codeDead Code
/smells/speculative-generalitySpeculative Generality
/refactoring/smells/couplersCouplers
/smells/feature-envyFeature Envy
/smells/inappropriate-intimacyInappropriate Intimacy
/smells/message-chainsMessage Chains
/smells/middle-manMiddle Man
/refactoring/smells/otherOther Smells
/smells/incomplete-library-classIncomplete Library Class
/refactoring/techniquesRefactorings
/refactoring/techniques/compos...Composing Methods
/extract-methodExtract Method
/inline-methodInline Method
/extract-variableExtract Variable
/inline-tempInline Temp
/replace-temp-with-queryReplace Temp with Query
/split-temporary-variableSplit Temporary Variable
/remove-assignments-to-parametersRemove Assignments to Parameters
/replace-method-with-method-ob...Replace Method with Method Object
/substitute-algorithmSubstitute Algorithm
/refactoring/techniques/moving...Moving Features between Objects
/move-methodMove Method
/move-fieldMove Field
/extract-classExtract Class
/inline-classInline Class
/hide-delegateHide Delegate
/remove-middle-manRemove Middle Man
/introduce-foreign-methodIntroduce Foreign Method
/introduce-local-extensionIntroduce Local Extension
/refactoring/techniques/organi...Organizing Data
/self-encapsulate-fieldSelf Encapsulate Field
/replace-data-value-with-objectReplace Data Value with Object
/change-value-to-referenceChange Value to Reference
/change-reference-to-valueChange Reference to Value
/replace-array-with-objectReplace Array with Object
/duplicate-observed-dataDuplicate Observed Data
/change-unidirectional-associa...Change Unidirectional Association to Bidirectional
/change-bidirectional-associat...Change Bidirectional Association to Unidirectional
/replace-magic-number-with-sym...Replace Magic Number with Symbolic Constant
/encapsulate-fieldEncapsulate Field
/encapsulate-collectionEncapsulate Collection
/replace-type-code-with-classReplace Type Code with Class
/replace-type-code-with-subcla...Replace Type Code with Subclasses
/replace-type-code-with-state-...Replace Type Code with State/Strategy
/replace-subclass-with-fieldsReplace Subclass with Fields
/refactoring/techniques/simpli...Simplifying Conditional Expressions
/decompose-conditionalDecompose Conditional
/consolidate-conditional-expre...Consolidate Conditional Expression
/consolidate-duplicate-conditi...Consolidate Duplicate Conditional Fragments
/remove-control-flagRemove Control Flag
/replace-nested-conditional-wi...Replace Nested Conditional with Guard Clauses
/replace-conditional-with-poly...Replace Conditional with Polymorphism
/introduce-null-objectIntroduce Null Object
/introduce-assertionIntroduce Assertion
/refactoring/techniques/simpli...Simplifying Method Calls
/rename-methodRename Method
/add-parameterAdd Parameter
/remove-parameterRemove Parameter
/separate-query-from-modifierSeparate Query from Modifier
/parameterize-methodParameterize Method
/replace-parameter-with-explic...Replace Parameter with Explicit Methods
/preserve-whole-objectPreserve Whole Object
/replace-parameter-with-method...Replace Parameter with Method Call
/introduce-parameter-objectIntroduce Parameter Object
/remove-setting-methodRemove Setting Method
/hide-methodHide Method
/replace-constructor-with-fact...Replace Constructor with Factory Method
/replace-error-code-with-excep...Replace Error Code with Exception
/replace-exception-with-testReplace Exception with Test
/refactoring/techniques/dealin...Dealing with Generalization
/pull-up-fieldPull Up Field
/pull-up-methodPull Up Method
/pull-up-constructor-bodyPull Up Constructor Body
/push-down-methodPush Down Method
/push-down-fieldPush Down Field
/extract-subclassExtract Subclass
/extract-superclassExtract Superclass
/extract-interfaceExtract Interface
/collapse-hierarchyCollapse Hierarchy
/form-template-methodForm Template Method
/replace-inheritance-with-dele...Replace Inheritance with Delegation
/replace-delegation-with-inher...Replace Delegation with Inheritance
/design-patternsDesign Patterns
/design-patterns/what-is-patternWhat is a Pattern
/design-patterns/what-is-patternWhat's a design pattern?
/design-patterns/historyHistory of patterns
/design-patterns/why-learn-pat...Why should I learn patterns?
/design-patterns/criticismCriticism of patterns
/design-patterns/classificationClassification of patterns
/design-patterns/catalogText duplicate Catalog
/design-patterns/creational-pa...Creational Patterns
/design-patterns/factory-methodFactory Method
/design-patterns/abstract-factoryAbstract Factory
/design-patterns/builderBuilder
/design-patterns/prototypePrototype
/design-patterns/singletonSingleton
/design-patterns/structural-pa...Structural Patterns
/design-patterns/adapterAdapter
/design-patterns/bridgeBridge
/design-patterns/compositeComposite
/design-patterns/decoratorDecorator
/design-patterns/facadeFacade
/design-patterns/flyweightFlyweight
/design-patterns/proxyProxy
/design-patterns/behavioral-pa...Behavioral Patterns
/design-patterns/chain-of-resp...Chain of Responsibility
/design-patterns/commandCommand
/design-patterns/iteratorIterator
/design-patterns/mediatorMediator
/design-patterns/mementoMemento
/design-patterns/observerObserver
/design-patterns/stateState
/design-patterns/strategyStrategy
/design-patterns/template-methodTemplate Method
/design-patterns/visitorVisitor
/design-patterns/examplesCode Examples
/design-patterns/csharpC#
/design-patterns/cppC++
/design-patterns/goTrivial anchor text
Go
/design-patterns/javaJava
/design-patterns/phpPHP
/design-patterns/pythonPython
/design-patterns/rubyRuby
/design-patterns/rustRust
/design-patterns/swiftSwift
/design-patterns/typescriptTypeScript
https://refactoring.guru/loginSign in
A-TITLE Sign in
https://feedback.refactoring.g...Nofollow External Subdomain Contact us
A-TITLE Contact us
https://refactoring.guru/Text duplicate IMG-ALT Refactoring.Guru
https://refactoring.guru/storeShop Now!
https://refactoring.guru/English
A-TITLE English
https://refactoring.guru/esEspañol
A-TITLE Español
https://refactoring.guru/frFrançais
A-TITLE Français
https://refactoring.guru/ja日本語
A-TITLE 日本語
https://refactoring.guru/ko한국어
A-TITLE 한국어
https://refactoring.guru/plPolski
A-TITLE Polski
https://refactoring.guru/pt-brPortuguês Brasileiro
A-TITLE Português Brasileiro
https://refactoring.guru/ruРусский
A-TITLE Русский
https://refactoring.guru/ukУкраїнська
A-TITLE Українська
https://refactoringguru.cn/External 中文
A-TITLE 中文
https://feedback.refactoring.g...Nofollow External Subdomain Text duplicate Contact us
A-TITLE Contact us
https://refactoring.guru/loginText duplicate Sign in
A-TITLE Sign in
https://refactoring.guru/Home
/refactoringText duplicate Refactoring
/design-patternsText duplicate Design Patterns
https://refactoring.guru/storeText duplicate Premium Content
https://refactoring.userecho.com/Nofollow External Subdomain Forum
https://refactoring.userecho.com/Nofollow External Subdomain Text duplicate Contact us
https://www.facebook.com/refac...External Subdomain No Text
/sendy/formNofollow No Text
https://github.com/Refactoring...External No Text
https://refactoring.guru/Text duplicate Refactoring.Guru
http://zhart.us/Nofollow External Dmitry Zhart
https://refactoring.guru/termsTerms & Conditions
/privacy-policyPrivacy Policy
/content-usage-policyContent Usage Policy
/site-aboutAbout us

Server configuration

HTTP redirects
(Critically important)
This page redirects to "https://refactoring.guru/"
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 is excellent with 0.07 seconds.
The file size of the HTML document is fine (69 kB).

HTTP Response Header

NameValue
dateSun, 11 Aug 2024 20:57:39 GMT
content-typetext/html; charset=utf-8
last-modifiedFri, 26 Jul 2024 08:35:17 GMT
varyAccept-Encoding
cache-controlmax-age=300, public, s-maxage=31536000
static-cacheHIT
strict-transport-securitymax-age=0; preload
x-frame-optionsSAMEORIGIN
x-xss-protection1; mode=block
x-content-type-optionsnosniff
access-control-allow-originhttps://refactoringguru.cn
access-control-allow-credentialstrue
cf-cache-statusHIT
age1425409
report-to{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=NEHZwOT6Bw3OIkAPbstk9vcJOivPW3dEGuBtkRKGx0Ql0UAvZmDLh%2FFZ4SGsWucJqn5%2BPOAsy6Vzkgp9Rnru2HHzoyS4nmE2XkEmolCy%2FM6mBkMSbAs70APZU77JeqGZRgML"}],"group":"cf-nel","max_age":604800}
nel{"success_fraction":0,"report_to":"cf-nel","max_age":604800}
servercloudflare
cf-ray8b1b23a7dbd990e0-FRA
content-encodinggzip
alt-svch3=":443"; ma=86400
statuscode200
http_versionHTTP/2

External factors

Blacklists
(Nice to have)
This website is not classified "for adult only".
This website has excellent links from other websites.
This page has backlinks from 2,767 referring domains.
This page has 503,649 backlinks.
This page has backlinks from 1,722 different ip addresses.
Facebook popularity
(Somewhat important)
The page has 0 shares and comments on Facebook.

Links from Wikipedia

No links from Wikipedia were found.

Robots.txt

User-agent: *
Disallow: /admin
Disallow: /cert/*
Disallow: /editor/
Disallow: /checkout
Disallow: /invoice/*
Disallow: /order/*
Disallow: /ajax/order/*
Sitemap: https://refactoring.guru/sitemap.xml

Search preview

refactoring.guru
Refactoring and Design Patterns
Refactoring is a controllable process of improving code without creating new functionality. Design Patterns are typical solutions to the commonly occurring problems in software design.

Most important keywords

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

KeywordResultRecheck
Refactoring82%Check
refactoring design74%Check
refactoring design patterns71%Check
patterns65%Check
design65%Check
design patterns65%Check
Guru52%Check
Hello50%Check
world50%Check
new48%Check

Test up to 1.000 webpages of refactoring.guru 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