Skip to main content
New: 190 SEO checks now available. See what's new
89 seo checks · free, no account

I'll show you why Google isn't ranking your pages

Give me any URL and I'll run a full technical SEO exam — every crawlability, indexing, metadata, content and structured-data problem, ranked by how much it's costing you, each with the exact fix.

Free instant analysis · No sign-up required · Results in seconds

89 seo checksResults in 5–15 secondsEvery issue comes with the fix

Sound familiar?

These are the situations this audit is built for. If more than one lands, the scan takes fifteen seconds.

  • Pages you published months ago still are not indexed, and Search Console will not say why.
  • Traffic slid and you cannot tell whether it was a change you shipped or an algorithm update.
  • Your titles and descriptions get rewritten by Google, so your click-through rate never moves.
  • Something is duplicated across the site and you cannot find which version Google picked.
  • You inherited the site and have no idea what technical debt is buried in it.
  • You suspect a robots or canonical rule is quietly hiding pages, but not which one.

When to call me in

A score you check once is trivia. These are the moments a diagnosis changes a decision.

1

Before and after a release

Scan on the way out and again after deploy. A noindex tag or blocked route that slips into production shows up in minutes, not after the traffic drops.

2

Taking over an unfamiliar site

One scan gives you the full technical debt list, ranked, so your first week is spent fixing rather than discovering.

3

During a migration or redesign

Migrations break canonicals, redirects and metadata at scale. Re-scan each stage and compare against the previous score.

4

Proving the work to a client

Every scan is kept, so the score and issue count are a before-and-after you can hand over without building a deck.

Every seo check I run

All 89 of them, 3 rated critical. This list comes straight from my exam room — if a check is named here, I can find it on your site.

critical

Missing title tag

The title tag is a top-3 ranking factor for on-page SEO. Without one, Google will attempt to generate a title from the page content, which is often suboptimal and leads to lower click-through rates. Pages without titles appear unprofessional in search results and social media shares.

critical

Page has noindex directive

A noindex directive completely removes the page from search engine results. If this page should attract organic traffic, the noindex tag must be removed. Note: Google will eventually stop crawling noindexed pages altogether, meaning any link equity flowing through them is also lost over time.

critical

X-Robots-Tag HTTP header contains noindex

The X-Robots-Tag is processed before the page body is parsed, making it an authoritative signal that overrides on-page directives. If set unintentionally (often by server misconfiguration), it silently de-indexes pages without any visible indication in the HTML source, making it hard to diagnose.

high

Multiple canonical tags found

Multiple canonical tags with different URLs create conflicting signals that Google may resolve by ignoring all of them and choosing its own canonical. This defeats the purpose of canonical tags and can lead to the wrong URL being indexed, duplicate content issues, and diluted ranking signals.

high

URL contains session ID parameter

Session IDs in URLs create potentially unlimited URL variations for the same content, severely wasting crawl budget and fragmenting link equity. Search engines may index thousands of duplicate pages with different session IDs. This is one of the most damaging technical SEO issues for crawl efficiency.

high

Hreflang tags missing on multilingual page

Without hreflang tags, Google may show the wrong language version of your page to users in different countries. This leads to poor user experience, higher bounce rates, and lost traffic. Multiple language versions may also compete against each other in search results, diluting ranking signals.

high

Links implemented with JavaScript only

While Google can execute JavaScript, it does not always follow JavaScript-based navigation. Links without proper href attributes are not discoverable during the initial HTML crawl pass and may never be followed by search engines. This means the linked pages receive no link equity from this page and may not be discovered through crawling.

high

Lorem ipsum placeholder text detected

Lorem ipsum text is meaningless filler that provides no value to users or search engines. Google recognizes placeholder text and may classify the page as low-quality or incomplete. Publishing pages with placeholder text damages site-wide quality signals and user trust.

high

Meta robots tag contains nofollow

A page-level nofollow directive stops all link equity from being distributed to any page linked from this page, including your own internal pages. This can severely damage internal link equity distribution and hurt the rankings of linked pages. It is rarely the correct approach; individual link-level nofollow is preferred when needed.

high

Missing H1 heading

The H1 tag tells both users and search engines what the page is about. Google uses heading tags as a strong relevance signal when determining rankings. A missing H1 is a missed opportunity to reinforce your target keyword and topic. It also hurts accessibility, as screen readers use headings for navigation.

high

Multiple <title> tags found

When multiple title tags are present, search engines must choose one, and they may not pick the one you intend. This can result in incorrect or suboptimal titles appearing in search results, hurting click-through rates. Multiple titles also indicate HTML quality issues that may affect how the page is parsed.

high

Structured data has validation errors

Invalid structured data is completely ignored by search engines — it provides no benefit and the page will not be eligible for rich results. In some cases, intentionally misleading structured data can trigger a manual action (penalty) from Google. Errors also waste development effort, as the markup exists but provides zero value.

high

Structured data points at an image that does not respond

These fields are promises a search engine verifies. Google fetches the logo to validate an Organization, and an entity whose logo 404s is invalid — which invalidates every Article that names it as publisher. Nothing in a normal toolchain catches this: the site compiles, the JSON is valid, the entity has every required field, and the file is simply not there.

high

Page contains no internal links

Pages without internal links prevent crawlers from discovering other content on your site and trap users with no way to continue navigating. Internal links are crucial for distributing PageRank and helping search engines understand your site structure. A page with no outbound internal links wastes its authority.

medium

Missing canonical tag

Canonical tags are the strongest signal you can send to search engines about which URL should be indexed when multiple URLs serve similar content. Without one, search engines may index the wrong URL variant (e.g., with query parameters, trailing slashes, or mixed case), diluting ranking signals across duplicate versions.

medium

Thin content (too few words)

Google's Helpful Content system explicitly targets thin, low-value pages. Pages with minimal content are unlikely to rank for competitive queries because they cannot demonstrate the depth, expertise, or comprehensiveness that search engines reward. Thin pages across a site can also trigger site-wide quality issues, dragging down the rankings of all pages.

medium

A linked social profile is dead

A dead social link sends visitors and crawlers to a missing page and undermines exactly the trust the link was placed to build. It also signals staleness — a footer nobody has revisited since the profile was deleted.

medium

Canonical URL is relative instead of absolute

Relative canonical URLs can be misresolved by search engines in certain edge cases, especially when pages are accessed through proxies, CDNs, or alternative domains. Google recommends using absolute URLs in canonical tags to avoid ambiguity. A relative canonical may also cause issues during site migrations or domain changes.

medium

Character encoding declaration missing

Missing charset declarations can cause text rendering issues, especially for pages with non-ASCII characters. Browsers use heuristics to guess the encoding, which may produce garbled text (mojibake). Search engines may also misinterpret the content, affecting indexing accuracy. This can also create security vulnerabilities related to encoding-based attacks.

medium

Content-Type HTTP header missing

Without a Content-Type header, browsers must sniff the content type, which can lead to incorrect rendering or security vulnerabilities (MIME sniffing attacks). Search engines may also have difficulty correctly parsing the page content without knowing the declared content type.

medium

Duplicate language code in hreflang set

Duplicate language codes create conflicting signals that may cause Google to ignore the entire hreflang set or pick an unintended URL for that language. This results in unpredictable behavior in international search results and potential traffic loss in affected regions.

medium

Hreflang set missing self-referencing entry

Google explicitly requires that hreflang annotations include a self-referencing tag. Without it, Google may ignore the entire hreflang set for this page, effectively negating all your international targeting signals. This is one of the most common hreflang implementation errors.

medium

Hreflang URL protocol mismatch

Google treats HTTP and HTTPS versions as different URLs. If your page is on HTTPS but hreflang tags point to HTTP versions, Google may not associate them correctly, breaking international targeting. This commonly happens when hreflang tags are generated before an HTTPS migration and not updated afterward.

medium

Hreflang uses invalid language code

Invalid language codes cause Google to silently ignore the hreflang annotation, meaning your international targeting will not work for the affected language/region. Common mistakes include using 'uk' for Ukrainian (should be 'uk' for country code but 'uk' is also valid as language), or using three-letter codes instead of two-letter codes.

medium

Hreflang uses relative URL

Google explicitly states that hreflang URLs must be fully qualified, including the protocol. Relative URLs in hreflang annotations will be ignored, breaking your international SEO targeting and potentially causing the wrong language version to be served to users.

medium

HTML lang attribute does not match content language

Conflicting language signals confuse search engines about which language the page is written in, potentially causing it to appear in wrong-language search results. Screen readers will also use incorrect pronunciation rules, degrading accessibility for visually impaired users.

medium

Image missing alt attribute

Image alt text is the primary way search engines understand image content. Without it, images cannot appear in Google Image Search (a significant traffic source for many sites). Missing alt text also makes the page inaccessible to visually impaired users who rely on screen readers, potentially violating accessibility laws (ADA, EAA) and reducing your audience.

medium

Link has empty anchor text

Anchor text is one of the strongest signals search engines use to understand the content of the linked page. Empty anchor text wastes this signal entirely. It also creates accessibility issues, as screen reader users cannot determine the purpose of the link.

medium

Link has malformed or empty href

Malformed links cannot pass link equity and waste crawl budget when search engines attempt to follow them. They also create poor user experience when clicked. Links with href="#" or javascript: pseudo-protocols are not crawlable by search engines, meaning any anchor text signals are lost.

medium

Missing meta description

While meta descriptions are not a direct ranking factor, they significantly influence click-through rates. Without a meta description, Google generates a snippet from page content, which is often awkward or irrelevant. A well-crafted meta description acts as ad copy for your search listing, directly affecting organic traffic volume.

medium

Multiple meta description tags found

Multiple meta descriptions send conflicting signals about the page summary. Google may use any one of them or generate its own snippet from page content instead, removing your control over how the page appears in search results. This often happens when CMS plugins each inject their own meta tags.

medium

No structured data (schema.org) found

Structured data enables rich results (star ratings, FAQ dropdowns, recipe cards, product prices, breadcrumbs, etc.) that dramatically increase click-through rates — some rich results see 20-30% higher CTR than standard listings. Without structured data, you miss opportunities for enhanced SERP visibility that competitors with markup will capture.

medium

Page redirects to a different domain

While 301 redirects to a different domain do pass link equity, the transfer is not always 100% efficient. Cross-domain redirects also complicate site migration tracking and can cause unexpected behavior with domain-level metrics. If unintentional, important pages may be sending traffic and authority to another site.

medium

Page uses meta refresh redirect

Google treats meta refresh redirects with a delay of 0 as 301 redirects, but longer delays may be treated as soft redirects that do not pass full ranking signals. Meta refreshes also create a poor user experience with a visible flash of content before redirection. Server-side 301 redirects are always preferred.

medium

Redirect chain detected

Google has confirmed it follows up to 10 redirects, but long chains slow down crawling and may result in Googlebot abandoning the chain. Each redirect hop historically lost a small amount of PageRank (though Google now says 301s pass full equity). More practically, chains increase page load time for users clicking old links.

medium

URL has excessive query parameters

Excessive query parameters multiply the number of URLs search engines must crawl, wasting crawl budget. Each parameter combination may be treated as a separate URL, fragmenting ranking signals. Google may also have difficulty determining which parameter combinations represent unique content versus duplicates.

medium

All internal links are in navigation only

Google values contextual links within the body content more highly than boilerplate navigation links. Navigation links appear on every page, so their per-page signal is diluted. Contextual links within unique content are stronger endorsements of the linked page and help search engines understand topical relationships between pages.

medium

Character encoding is not UTF-8

UTF-8 is the web's standard encoding, supporting all languages and special characters. Non-UTF-8 encodings may cause characters to display incorrectly (mojibake) in browsers, search engine indexes, and social media previews. Google strongly recommends UTF-8 for all web pages.

medium

Empty heading tag found

Empty headings waste an opportunity to provide keyword signals and structural context. Screen readers announce empty headings, confusing users who rely on heading navigation. Search engines may view empty headings as a sign of poor content quality or incomplete page development.

medium

No paragraph tags in main content

Paragraph tags provide semantic structure that helps search engines understand text content. Without them, search engines may have difficulty identifying and extracting meaningful content passages for featured snippets and passage-based ranking. Proper semantic markup also improves accessibility for screen readers.

medium

Open Graph og:image tag missing

Social media posts with images receive significantly more engagement than text-only posts. Facebook reports that posts with images see 2.3x more engagement. Without og:image, your shared links appear as plain text cards, which are easily overlooked in social feeds. This directly impacts referral traffic from social platforms.

low

Duplicate heading text on same page

Duplicate headings reduce the uniqueness and semantic clarity of the page structure. Search engines use headings to understand content hierarchy and topic segmentation. Multiple identical headings dilute these signals and can confuse both users and search engines about the page's content organization.

low

Excessive number of external links

Every external link passes some PageRank to the destination domain. Pages with an unusually high number of outbound external links distribute authority away from your site. While linking to relevant resources is good practice, excessive external links can look like a link scheme or paid links, potentially triggering spam filters.

low

Excessive use of bold/strong tags

Google considers <strong> tags as a mild emphasis signal for the bolded text. Overusing bold tags dilutes this signal and can appear manipulative. When everything is emphasized, nothing is effectively emphasized. Excessive bolding also degrades readability by creating visual noise.

low

Favicon not found

Google now displays favicons in mobile search results next to the page title. A missing favicon shows a generic globe icon, making your listing appear less professional and trustworthy compared to competitors with custom favicons. Browsers also generate 404 requests for /favicon.ico when no favicon is specified, creating unnecessary server load.

low

Few or no social profiles linked

Linked, consistent social profiles are entity and trust signals. Search engines and LLM-based assistants use them to verify that a real organisation stands behind a domain, and visitors use them to judge legitimacy before buying. A site with no discoverable presence anywhere else reads as either very new or abandoned.

low

H1 heading is too long

A concise H1 provides a clear, focused signal about the page's primary topic. Long H1s are harder for users to scan and may weaken the keyword signal by including too many words. While there is no strict character limit, best practice is to keep H1s focused and under 70 characters.

low

H1 heading is too short

Very short H1s like 'Home' or 'Blog' do not give search engines meaningful topical signals. The H1 is one of the strongest on-page elements for indicating what a page is about. A generic or overly brief H1 wastes this opportunity.

low

Image has empty alt attribute

If a content-relevant image has an empty alt attribute, search engines cannot understand what the image depicts, and it will not appear in image search results. The page also loses the opportunity to reinforce topical relevance through image alt text. For users relying on screen readers, the image is completely invisible.

low

Internal link has nofollow attribute

Using nofollow on internal links wastes PageRank. The equity that would have flowed through that link is effectively lost (Google does not redistribute it to other links on the page). Internal nofollow was historically used for "PageRank sculpting," but Google has confirmed this technique no longer works and the equity is simply evaporated. Internal links should almost always be followed.

low

Link uses generic anchor text

Descriptive anchor text helps search engines understand the topic of the linked page. Generic text like 'click here' provides no topical signal and reduces the SEO value of the internal link. Google specifically recommends using descriptive anchor text that gives users and search engines context about the destination page.

low

Low text-to-HTML ratio

Pages with low text-to-HTML ratios may be viewed as thin content by search engines, as the actual informational content is a small fraction of the page. High proportions of non-content HTML also slow rendering. While not a direct ranking factor, it correlates with other content quality issues.

low

Open Graph og:description tag missing

Without og:description, social platforms extract text from the page content, which often produces awkward or irrelevant snippets. A custom og:description lets you craft a message optimized for social engagement, which can differ from the SEO-focused meta description.

low

Open Graph og:title tag missing

The og:title allows you to customize the title displayed in social media shares, which can differ from the SEO title tag. Without it, platforms use the page title, which may be truncated or contain SEO-specific formatting (separators, brand name) that looks awkward in social contexts.

low

Open Graph og:url does not match canonical

Mismatched og:url and canonical tags create confusion about the preferred URL. Social platforms and search engines receive different canonical signals, which can lead to fragmented metrics and inconsistent page identity across platforms.

low

Open Graph og:url tag missing

The og:url tag acts as a canonical for social shares, consolidating likes, shares, and comments to a single URL. Without it, shares via different URL variants (with/without tracking parameters) are counted separately, fragmenting social signals.

low

Paginated page missing rel=prev/next

Although Google announced in 2019 that it no longer uses rel=prev/next for indexing, these tags still help crawlers discover all pages in a paginated series. Bing and other search engines may still use them. They also improve accessibility and help tools understand content relationships.

low

Social media preview is incomplete

Incomplete social previews reduce the visual appeal and click-through rate of shared links. Each missing element (title, description, image) diminishes the effectiveness of social shares as a traffic driver. Complete social previews can increase click-through rates by 2-3x compared to incomplete ones.

low

Structured data has warnings

While the structured data will be processed without the recommended fields, including them improves the chances of earning rich results and provides richer information to search engines. For example, adding 'aggregateRating' to Product schema enables star ratings in SERPs, which can significantly boost click-through rates.

low

Title tag is too long

Truncated titles hide important information and can reduce click-through rates. Users may not understand what the page is about if the meaningful part of the title is cut off. While excessively long titles don't directly hurt rankings, they represent a missed opportunity for clear communication in SERPs.

low

Title tag is too short

Short titles often lack the keyword richness needed to rank for target queries. They also tend to have lower click-through rates because they don't provide enough information for users to judge relevance in search results. Google may choose to rewrite very short titles, which removes your control over what appears in SERPs.

low

Too many on-page links

PageRank is divided among all links on a page, so more links means less equity passed to each destination. Pages with hundreds of links may also be perceived as low-quality or spammy directories. Excessive links create noise that makes it harder for search engines to identify which pages you consider most important through your internal linking strategy.

low

Twitter Card meta tag missing

Twitter Card tags enable rich media previews when your page is shared on Twitter/X. Without the twitter:card tag, shared links may appear as plain text without images, reducing engagement and click-through rates from one of the most important social platforms for content distribution.

low

Twitter image meta tag missing

Tweets with images receive significantly more engagement than text-only tweets. Without a twitter:image (and no og:image fallback), shared links appear without visual preview, reducing click-through rates from Twitter/X.

low

URL contains double slashes in path

Double slashes create separate URLs that serve identical content, splitting ranking signals between the clean and double-slash versions. While most servers normalize these, search engines may discover and index both variations, diluting link equity.

low

URL contains non-ASCII characters

Non-ASCII URLs are percent-encoded in HTTP requests, making them extremely long and unreadable in logs and some tools. Some older systems, email clients, and social platforms may not handle encoded URLs correctly, potentially breaking links. Google can handle internationalized URLs but recommends using UTF-8 encoding.

low

URL contains special characters

Special characters in URLs get percent-encoded (e.g., space becomes %20), making URLs ugly and difficult to share. Some older systems and crawlers may have trouble with encoded URLs. Clean, readable URLs are preferred by both users and search engines for clarity and trust.

low

URL contains uppercase characters

Uppercase URLs can lead to duplicate content when both uppercase and lowercase versions serve the same content. Users who type URLs manually tend to use lowercase, potentially creating 404 errors. Consistent lowercase URLs are an established SEO best practice that prevents URL fragmentation.

low

URL exceeds recommended length

Studies show that shorter URLs tend to rank slightly better. Long URLs are difficult for users to read, share, and remember. Some social platforms and email clients truncate long URLs, and they can appear spammy in search results. Google can handle long URLs but recommends keeping them simple and descriptive.

low

URL has too many directory levels

While Google does not penalize deep URLs directly, URL depth often correlates with click depth from the homepage. Deeply nested URLs receive less internal link equity and may be crawled less frequently. Flatter URL structures are easier for users to understand and navigate.

low

URL uses underscores instead of hyphens

Google's Matt Cutts confirmed that Google treats hyphens as word separators but does not do the same for underscores. A URL like /my_page is interpreted as 'mypage' rather than 'my page', reducing the keyword signal from the URL. While this is a minor factor, it is an easy optimization to implement.

low

WebSite schema markup missing

The WebSite schema with SearchAction enables the sitelinks search box directly in Google search results, allowing users to search your site from the SERP. This enhanced listing increases visibility and click-through rates for branded searches.

low

X-Content-Type-Options header missing

Without this header, browsers may interpret files as a different content type than intended, which can lead to XSS attacks when a malicious file is interpreted as executable script. While primarily a security concern, sites that are compromised suffer severe SEO consequences including Google Safe Browsing warnings.

low

Broken heading hierarchy

Heading hierarchy provides a semantic outline of the page content. Skipped heading levels confuse screen readers and make the content structure less clear to search engines. While not a strong direct ranking factor, a clean heading structure is part of Google's assessment of content quality and user experience. It also matters significantly for accessibility compliance (WCAG).

low

Link is named for screen readers but has no anchor text

Nothing is broken for users. What is missing is a descriptive signal to the page being linked to, which is worth having on links that point at pages you want to rank. Icon links in a footer rarely qualify; a text link rendered as an icon usually does.

low

Meta description is too long

Truncated descriptions cut off your message to potential visitors. The most compelling part of your description might be hidden, reducing click-through rates. While Google often rewrites descriptions regardless, providing a well-length description gives you the best chance of controlling your search snippet.

low

Meta description is too short

Short meta descriptions waste valuable SERP real estate that could be used to differentiate your page from competitors. Google is more likely to replace a very short description with auto-generated content from the page, removing your control over the search snippet.

low

Multiple H1 headings on page

Multiple H1 tags can dilute the topical focus of the page. Search engines may be uncertain which H1 represents the primary topic. Google's John Mueller has stated that while multiple H1s are not an error, using a single H1 helps Google understand the page structure better. A clear heading hierarchy improves both SEO and user experience.

info

Content-Language HTTP header missing

The Content-Language header is a supplementary signal that helps browsers and search engines determine the page language. While Google primarily relies on the page content itself to detect language, providing consistent language signals across all channels (HTML lang, hreflang, Content-Language header) strengthens language targeting.

info

Meta keywords tag is present

The meta keywords tag is entirely ignored by Google, Bing, and most modern search engines. While it does not cause harm, it adds unnecessary code to the page and openly reveals your target keywords to anyone who views the page source, including competitors analyzing your SEO strategy.

info

Microdata format detected instead of JSON-LD

Google explicitly recommends JSON-LD over Microdata and RDFa. JSON-LD is easier to implement, maintain, and debug because it is separate from the HTML markup. Microdata requires embedding attributes throughout the HTML, making it more fragile and error-prone during template changes.

info

Open Graph og:description is too long

Facebook typically shows about 200 characters of the og:description. Content beyond that is hidden, potentially losing your call to action or key value proposition in social shares.

info

Open Graph og:locale tag missing

Without og:locale, social platforms assume the default locale (en_US). For non-English content or content targeting specific regions, the og:locale helps social platforms display the content correctly and serve it to the right audience.

info

Open Graph og:title is too long

Facebook truncates og:title at around 60-90 characters depending on the context. LinkedIn and Twitter have similar limits. A truncated title on social media reduces engagement and click-through rates from social shares.

info

Open Graph og:type tag missing

Without og:type, social platforms default to 'website' type. For articles, products, or other specific content types, setting the correct og:type can influence how the shared content is displayed and categorized on social platforms.

info

Twitter description meta tag missing

A dedicated twitter:description allows you to craft a description optimized for Twitter's character limits and audience. Without it, the fallback description may not be ideal for Twitter's preview card format.

info

Twitter site handle meta tag missing

The twitter:site tag attributes shared content to your brand's Twitter account. Without it, shared links do not show your Twitter handle in the card, missing an opportunity for brand attribution and follower growth when your content is shared.

info

Twitter title meta tag missing

While Twitter falls back to og:title, having a dedicated twitter:title allows you to customize the title specifically for Twitter's audience and format constraints, potentially improving engagement on the platform.

info

URL contains unnecessary file extension

While file extensions do not directly hurt SEO, they expose implementation details and make URLs less clean. If you later migrate from .php to .aspx, all URLs must change. Extension-free URLs are more future-proof and considered best practice for modern web architecture.

Questions

Is the SEO audit really free?

Yes — a single-page audit needs no account and no card. A free account adds crawling of the whole site and keeps the history of every scan.

How is this different from Lighthouse?

Lighthouse scores one page on performance and best practice. Dr Urls runs the technical SEO checks Lighthouse does not — indexing, canonicals, structured data, internal linking — across your whole site, and keeps the history so you can see regressions.

Will it tell me how to fix what it finds?

Every issue ships with why it matters and the exact change to make, most with a code example. The report is a to-do list, not a diagnosis you still have to interpret.

Let me check your seo now

One page is free and instant. Open an account and I'll take the whole site and keep every check-up on record, so you can prove what changed.