What's My Website Missing for AI Search? | Free Claude Skill
Home What's Included About Us Resources SEO Templates Claude SEO Skills AI SEO Prompts SEO Tools SEO & AI Search Guides Contact Sign In Enroll For Free
Free Claude Skill + Leak Explorer

What's My Website Missing for AI Search?

In 2024 Google's internal search documentation leaked. It describes 14,014 attributes across 2,596 modules. This page turns the five that matter into a check you can run on your own site, and lets you search the rest.

Free, no email required. The explorer runs in your browser and sends nothing anywhere.

Why this exists

Think of Google as a library.

There are three places a book can sit. On the front desk, where the librarian hands it to everyone who asks. On the shelves, where you will find it if you go looking. Or in the basement, where it is technically in the building and nobody ever hears about it.

Most business websites are in the basement. Not because they are bad, and not because of anything as simple as a missing keyword. They are missing one of five specific things, and the leaked documentation names all five.

14,014attributes in the documentation, as reported by Rand Fishkin at SparkToro
2,596modules in the public 0.4.0 mirror, counted from the source
101attributes explained in plain words below
59%of it has nothing to do with your website at all

That last number is the part nobody mentions. Most of the leak is plumbing: video metadata, map data, image handling, internal formats. We sorted every attribute into buckets and 59% of them landed in "everything else". The useful part is much smaller than the headline, and that is exactly why a searchable version of it is worth having.

Read this before you read anything else

This is not a list of ranking factors.

What the documentation actually is

It is a reference for what Google's systems can store. A field existing does not tell you it is used in ranking, how much weight it carries, or whether it is still switched on. Several fields in here are marked deprecated by Google's own comments. Others have no description at all.

Google confirmed the documents were authentic on 29 May 2024, and said this at the same time:

We would caution against making inaccurate assumptions about Search based on out-of-context, outdated, or incomplete information.Google spokesperson Davis Thompson, to The Verge, 29 May 2024

That warning is fair, and this page takes it seriously. Everything below separates three things and labels which is which: what the documentation says, in its own words; what that plainly means; and what we think you should do. Where a field is undocumented, it says so rather than guessing.

Nothing here promises rankings. It is a map of what is measurable, which is a more useful thing to have than a list of promises.

The five misses

What separates the desk from the basement

Each of these is a check in the free skill below, and every card in the explorer is badged with the one it feeds.

Miss 1

Your links come from the basement too

The documentation describes an index split into tiers. Andrew Ansley's write-up in Search Engine Land put the storage side plainly: the most important and regularly updated content sits on the fastest storage, less important content on slower storage, and rarely updated content slower again.

Links carry the tier of the page they came from. That is the field sourceType, and its own description says it records the quality of the linking page and correlates with that page's index tier.

What this means for you. A link's value comes from the page, not the domain. Two links from the same website can be worth wildly different amounts, and no domain-level score sold by an SEO tool can see the difference. Paying for links on pages nobody reads buys nothing.

Miss 2

Your page shows no effort

There is a field called contentEffort. Its description reads: LLM-based effort estimation for article pages. Ansley's analysis named the ingredients that score well: tools, images, video, unique information and depth of information.

The question that decides it. Could a competitor reproduce your page in five minutes with Claude open? If yes, there is nothing here for an effort estimate to find.

Miss 3

Nobody does anything with your page

The click signal store separates clicks into kinds: goodClicks, badClicks, and lastLongestClicks, the last one being the result that ended the search. Getting the click is not the finish line.

This is not about whether a machine wrote your page. There is no field in the documentation asking that. There is a GibberishScore for text that does not make sense, and that is a different question entirely. What is measured is whether people finish, interact and share.

What this means for you. Rewriting the words does not fix an engagement problem. Giving somebody a reason to finish, something to do, or one line worth forwarding does.

Miss 4

The web has nothing to say about you

Google said for years that it had no site-wide authority measure. The documentation contains siteAuthority, and its description says it is applied in the main ranking stage. Beside it sit siteFocusScore, for how concentrated a site is on one topic, and siteRadius, for how far a page drifts from what the site is about.

The test you can run today. Search your business name and exclude your own domain. What comes back is roughly what an AI assistant has to work with when somebody asks about you. If it is nothing, that is the finding.

Miss 5

You never answer the questions being asked

Modern search and AI assistants break one question into many before answering, then pull from whichever source answers each part. Ansley's write-up notes that clicks and impressions are aggregated topically, which is the same idea from the other end.

What this means for you. Your page answers the headline question and stops. The price question, the comparison question, the what-happens-next question all get answered by somebody else, and that somebody else gets cited.

The leak, translated

Search the whole documentation in plain words

101 attributes carry a full explanation, written by us and badged with the miss they feed. Every other attribute in the mirror is searchable by name, module and Google's own description, marked "not yet annotated". Only 68% of them carry a description in the documentation at all; the rest are a name and a type.

Showing the 101 annotated attributes. Type to search the whole documentation.

anchorMismatchDemotionCompressedQualitySignals
Miss 1 · LinksLinks and tiers

A demotion applied when the wording of links pointing at a page does not match the page itself. Mismatch is the trigger.

Why you care. Links described as something you are not can subtract rather than add.

As documentedanchor_mismatch_demotion: converted from QualityBoost.mismatched.boost.google_api_content_warehouse 0.4.0, module CompressedQualitySignals

anchorSpamInfoIndexingDocjoinerAnchorStatistics
Miss 1 · LinksLinks and tiers

Holds the signals and penalties produced by the anchor spam penaliser. It replaced an earlier version of the same idea.

Why you care. Link spam detection is not a single switch. There is a structure dedicated to holding its findings about your site.

As documentedThis structure contains signals and penalties of AnchorSpamPenalizer. It replaces phrase_anchor_spam_info above, that is deprecated.google_api_content_warehouse 0.4.0, module IndexingDocjoinerAnchorStatistics

context2AnchorsAnchor
Miss 1 · LinksLinks and tiers

A hash of the words near a link, replacing an earlier version of the same idea. The surrounding text is stored with the link.

Why you care. The paragraph around a link is part of the link. A list of links with no context is a thinner signal.

As documentedThis is a hash of terms near the anchor. (This is a second-generation hash replacing the value stored in the 'context' field.)google_api_content_warehouse 0.4.0, module AnchorsAnchor

encodedNewsAnchorDataAnchorsAnchor
Miss 1 · LinksLinks and tiers

Data about the newsiness of a link, populated only when the source is classified as a newsy, high quality site. Not every link gets it.

Why you care. Genuine press coverage is stored differently from an ordinary link, and the field name says so.

As documentedEncoded data containing information about newsiness of anchor. Populated only if anchor is classified as coming from a newsy, high quality site. Encoded data for anchor sources are being stored in googledata/quality/freshness/news_anchors/encoded_news_anchors_data.txt Scores are being computed with quality/freshness/news_anchors/ routines.google_api_content_warehouse 0.4.0, module AnchorsAnchor

experimentalAnchorsAnchor
Miss 1 · LinksLinks and tiers

Marks a link as experimental and not to be used when serving results. It exists in storage without counting.

Why you care. Presence in the index is not the same as being used, which is true of a great deal in this documentation.

As documentedIf true, the anchor is for experimental purposes and should not be used in serving.google_api_content_warehouse 0.4.0, module AnchorsAnchor

forwardingTypesAnchorsAnchor
Miss 1 · LinksLinks and tiers

Records how a link was passed along to a canonical page, set only for forwarded links. Redirects and duplicates are handled here.

Why you care. Links to old URLs are passed along in a tracked way, so a redirect is not a black box.

As documentedHow the anchor is forwarded to the canonical, available only for forwarded anchors (i.e., the field is set). The forwarding types are defined in URLForwardingUtil (segindexer/segment-indexer-util.h). Always use URLForwardingUtil to access this field and use URLForwardingUtil::GetAnchorForwardingReason to get the explanation how the anchor is forwarded to the canonical. NOTE: Use with caution as it is only set for docjoins generated using the urlmap from repository/updater.google_api_content_warehouse 0.4.0, module AnchorsAnchor

homepageAnchorsDroppedAnchors
Miss 1 · LinksLinks and tiers

Counts home page links that were thrown away rather than stored. Not every link that exists gets kept.

Why you care. A link can be discarded before it is ever counted, and nothing about your site will tell you it happened.

As documentedThe total # of local homepage anchors dropped in AnchorAccumulator.google_api_content_warehouse 0.4.0, module Anchors

homePageInfoAnchorsAnchorSource
Miss 1 · LinksLinks and tiers

Notes whether the page giving you the link is a site's home page. Home pages are treated as their own category.

Why you care. A link from a site's front page is not filed the same way as a link from a buried post.

As documentedInformation about if the source page is a home page. It can be one of the enum values defined in PerDocData::HomePageInfo (NOT_HOMEPAGE, NOT_TRUSTED, PARTIALLY_TRUSTED, and FULLY_TRUSTED).google_api_content_warehouse 0.4.0, module AnchorsAnchorSource

indexTierAnchors
Miss 1 · LinksLinks and tiers

Records which tier of Google's index a batch of links was pulled out of. Google's index is layered, not flat.

Why you care. A link sitting in a low tier is stored, counted and worth close to nothing. This is the field behind the whole tier idea.

As documentedThe index tier from which the anchors were extracted. Note that this is only valid in the anchor record written by linkextractor. The value can be one of the enum values defined in segindexer/types.h.google_api_content_warehouse 0.4.0, module Anchors

isLocalAnchorsAnchor
Miss 1 · LinksLinks and tiers

Marks whether a link points from one page to another on the same site. The documentation notes the bit is only a rough indicator.

Why you care. Internal links and external links are separated at storage time, which is why one cannot be substituted for the other.

As documentedThe bit ~roughly~ indicates whether an anchor's source and target pages are on the same domain. Note: this plays no role in determining whether an anchor is onsite, ondomain, or offdomain in mustang (i.e., the bit above).google_api_content_warehouse 0.4.0, module AnchorsAnchor

linkAdditionalInfoAnchorsAnchor
Miss 1 · LinksLinks and tiers

A slot for extra information about a link, including additional anchor text or scores. It rides along with the link record.

Why you care. Links are not simple pointers in this system. They are records with attached judgement.

As documentedAdditional information related to the anchor, such as additional anchor text or scores.google_api_content_warehouse 0.4.0, module AnchorsAnchor

localityAnchorsAnchor
Miss 1 · LinksLinks and tiers

A quality measure for each link based on locality and bucket. The documentation points at an internal definitions file for the detail.

Why you care. Link quality is graded per link at storage time, not averaged across a domain afterwards.

As documentedFor ranking purposes, the quality of an anchor is measured by its "locality" and "bucket". See quality/anchors/definitions.h for more information.google_api_content_warehouse 0.4.0, module AnchorsAnchor

onsiteProminencePerDocData
Miss 1 · LinksLinks and tiers

Measures how important a page is inside its own website. It works by simulating traffic flowing from the home page and high traffic pages.

Why you care. Your internal linking decides this, and it is entirely under your control, unlike anything to do with external links.

As documentedOnsite prominence measures the importance of the document within its site. It is computed by propagating simulated traffic from the homepage and high craps click pages. It is a 13-bit int.google_api_content_warehouse 0.4.0, module PerDocData

pagerankWeightAnchorsAnchor
Miss 1 · LinksLinks and tiers

A per-link weight written into the link maps before PageRank runs. Not every link enters the calculation at the same strength.

Why you care. Links are weighted before they are counted. Buying a hundred of them does not buy a hundred units of anything.

As documentedWeight to be stored in linkmaps for pagerankergoogle_api_content_warehouse 0.4.0, module AnchorsAnchor

phraseAnchorSpamPenaltyIndexingDocjoinerAnchorPhraseSpamInfo
Miss 1 · LinksLinks and tiers

A combined penalty calculated from the wording of the links pointing at a page. Repetition across many links is what it looks at.

Why you care. Buying fifty links that all say the same keyword phrase is the pattern this field is built to catch.

As documentedCombined penalty for anchor demotion.google_api_content_warehouse 0.4.0, module IndexingDocjoinerAnchorPhraseSpamInfo

sourceTypeAnchorsAnchor
Miss 1 · LinksLinks and tiers

Every link Google stores carries a note about how good the page it came from is. That note tracks which tier of the index the linking page sits in.

Why you care. Two links from the same website can be worth very different amounts. The page matters, and a domain score sold by a tool cannot see this field.

As documentedis to record the quality of the anchor's source page and is correlated with but not identical to the index tier of the source page. In the docjoins built by the indexing pipeline (Alexandria), - Anchors marked TYPE_HIGH_QUALITY are from base documents. - Anchors marked TYPE_MEDIUM_QUALITY are from documents of medium quality (roughly but not exactly supplemental tier documents). - Anchors marked TYPE_LOW_QUALITY are from documents of low quality (roughly but not exactly blackhole documents). Note that the source_type can also be used as an importance indicator of an anchor (a lower source_type value indicates a more important anchor), so it is important to enforce that TYPE_HIGH_QUALITY < TYPE_MEDIUM_QUALITY < TYPE_LOW_QUALITY To add a new source type in future, please maintain the proper relationship among the types as well. TYPE_FRESHDOCS, only available in freshdocs indexing, is a special case and is considered the same type as TYPE_HIGH_QUALITY for the purpose of anchor importance in duplicate anchor removal.google_api_content_warehouse 0.4.0, module AnchorsAnchor

spamrankAnchorsAnchorSource
Miss 1 · LinksLinks and tiers

A spam score attached to the page a link came from. It travels with the link.

Why you care. If you buy a link from a page that links to junk, the score of that page is stored alongside your link.

As documenteduint16 scalegoogle_api_content_warehouse 0.4.0, module AnchorsAnchorSource

weightFatcatCompactDocClassification
Miss 1 · LinksLinks and tiers

The relative weight of a page within its own site, described as something like PageRank or Navboost impressions. It ranks your pages against each other.

Why you care. Your own site has an internal hierarchy, and where a page sits in it is stored.

As documentedThe relative weight of this doc within a site, typically something like pagerank or navboost impressions. May be a large number (like an actual pageviews estimate), not limited to a small range.google_api_content_warehouse 0.4.0, module FatcatCompactDocClassification

chardEncodedQualityNsrNsrData
Miss 2 · EffortEffort and page quality

Another site level content quality predictor, stored as a whole number. It sits beside tofu and does a similar job.

Why you care. There is more than one content quality predictor running at site level, so this is not a single score to game.

As documentedSite-level chard score: site quality predictor based on content.google_api_content_warehouse 0.4.0, module QualityNsrNsrData

chardVarianceQualityNsrNsrData
Miss 2 · EffortEffort and page quality

How much the content quality score varies across the pages of a site. Consistency is measured, not only the average.

Why you care. A site of uniformly decent pages and a site with a few great pages and a lot of filler do not look the same here.

As documentedNo description. The reference lists this attribute with a name and a type only.google_api_content_warehouse 0.4.0, module QualityNsrNsrData

contentEffortQualityNsrPQData
Miss 2 · EffortEffort and page quality

A machine estimate of how much work went into an article page, produced by a large language model. It is stored per page.

Why you care. This is the field behind the whole effort idea. Something is reading your page and forming a view on whether making it was hard.

As documentedLLM-based effort estimation for article pages (see landspeeder/4311817).google_api_content_warehouse 0.4.0, module QualityNsrPQData

imageQualityClickSignalsImageData
Miss 2 · EffortEffort and page quality

Click based signals for image quality, described as usefulness, presentation, appealingness and engagingness. Images get their own behaviour data.

Why you care. Stock images and made-for-the-page images are not treated as interchangeable filler.

As documentedClick signals for measuring image quality (e.g., usefulness, presentation, appealingness, and engagingness). Click signals are considered Search CPS Personal Data.google_api_content_warehouse 0.4.0, module ImageData

isVideoFocusedSiteQualityNsrNsrData
Miss 2 · EffortEffort and page quality

A flag for sites whose content is mostly video without being a known video host. It triggers above roughly half the URLs being watch pages.

Why you care. Format is classified at site level, which is why a site's character is legible before any single page is read.

As documentedBit to determine whether the site has mostly video content, but is not hosted on any known video-hosting domains. Site is considered to be video-focused, if it has > 50% of the URLs with watch pages (with smoothing prior). ariane/4045246google_api_content_warehouse 0.4.0, module QualityNsrNsrData

numTokensDocProperties
Miss 2 · EffortEffort and page quality

An approximate count of the words, tags and punctuation in a page once it has been broken into pieces. It is a size measure, nothing more.

Why you care. Length is stored, but as one number among thousands. It is not a target.

As documentedThe number of tokens, tags and punctuations in the tokenized contents. This is an approximation of the number of tokens, tags and punctuations we end up with in mustang, but is inexact since we drop some tokens in mustang and also truncate docs at a max cap.google_api_content_warehouse 0.4.0, module DocProperties

OriginalContentScorePerDocData
Miss 2 · EffortEffort and page quality

A seven bit score, from 0 to 127, for how original a page's content is. The documentation says only pages with little content carry it.

Why you care. Thin pages get graded on originality specifically. Being short and unoriginal is a combination the system stores.

As documentedThe original content score is represented as a 7-bits, going from 0 to 127. Only pages with little content have this field. The actual original content score ranges from 0 to 512. It is encoded with quality_q2::OriginalContentUtil::EncodeOriginalContentScore(). To decode the value, use quality_q2::OriginalContentUtil::DecodeOriginalContentScore().google_api_content_warehouse 0.4.0, module PerDocData

pqDataCompressedQualitySignals
Miss 2 · EffortEffort and page quality

Encoded page level page quality signals, packed together into one field. The detail is compressed away.

Why you care. Page quality is not one score. It is a bundle, stored compressed because there is a lot of it.

As documentedEncoded page-level PQ signals.google_api_content_warehouse 0.4.0, module CompressedQualitySignals

productReviewPReviewPageCompressedQualitySignals
Miss 2 · EffortEffort and page quality

Part of a pair of fields for promoting high quality review pages and demoting low quality ones. It estimates whether a page is a review at all.

Why you care. Review content is classified before it is judged, so pretending to be a review is a recognised move.

As documentedFields product_review_p_review_page and product_review_p_uhq_page are for promoting/demoting HQ/LQ review pages in NGS. See go/pr-boosts for details. The possibility of a page being a review page.google_api_content_warehouse 0.4.0, module CompressedQualitySignals

productReviewPUhqPageCompressedQualitySignals
Miss 2 · EffortEffort and page quality

The estimated likelihood that a page is a high quality review page. It is the promotion side of the same system.

Why you care. Genuinely testing what you review has a field pointing at it.

As documentedThe possibility of a page being a high quality review page.google_api_content_warehouse 0.4.0, module CompressedQualitySignals

smallPersonalSiteQualityNsrNsrData
Miss 2 · EffortEffort and page quality

A score used to promote small personal sites. The documentation links it to an internal project on promoting personal blogs.

Why you care. Being small is not automatically a disadvantage in this documentation. There is a field for the opposite.

As documentedScore of small personal site promotion go/promoting-personal-blogs-v1google_api_content_warehouse 0.4.0, module QualityNsrNsrData

tofuQualityNsrNsrData
Miss 2 · EffortEffort and page quality

A site level quality prediction made from the content itself. The documentation calls it a site quality predictor based on content.

Why you care. Your pages are judged partly by the company they keep. One weak section drags a score that is calculated for the whole site.

As documentedSite-level tofu score: site quality predictor based on content.google_api_content_warehouse 0.4.0, module QualityNsrNsrData

ugcDiscussionEffortScoreCompressedQualitySignals
Miss 2 · EffortEffort and page quality

A page quality score for content written by users rather than the site owner. Comments and discussion are scored on their own.

Why you care. If you host comments or a forum, that material is assessed separately from what you wrote.

As documentedUGC page quality signals. (Times 1000 and floored)google_api_content_warehouse 0.4.0, module CompressedQualitySignals

ugcScoreQualityNsrNsrData
Miss 2 · EffortEffort and page quality

A site level score relating to user generated content, undocumented in the reference. Its name is the only description available.

Why you care. Plenty of the leak is like this. A name and a type, and no explanation.

As documentedNo description. The reference lists this attribute with a name and a type only.google_api_content_warehouse 0.4.0, module QualityNsrNsrData

videoScoreQualityNsrNsrData
Miss 2 · EffortEffort and page quality

A site level video score with no description in the documentation. It sits with the other site quality fields.

Why you care. A worked example of the honest limit here: the field exists, and what it does is not written down.

As documentedNo description. The reference lists this attribute with a name and a type only.google_api_content_warehouse 0.4.0, module QualityNsrNsrData

articleScoreV2QualityNsrNsrData
Miss 5 · Fan-outEffort and page quality

A site level article score, version two, with no description in the documentation. The version number is the only extra information.

Why you care. Scores get replaced. Anything read from this documentation is a snapshot of one moment.

As documentedNo description. The reference lists this attribute with a name and a type only.google_api_content_warehouse 0.4.0, module QualityNsrNsrData

clutterScoresQualityNsrNsrData
Miss 5 · Fan-outEffort and page quality

A set of site level scores relating to clutter, held as versioned values. Clutter is not defined in the reference.

Why you care. Distracting page furniture appears to be measured. How, the documentation does not say.

As documentedNo description. The reference lists this attribute with a name and a type only.google_api_content_warehouse 0.4.0, module QualityNsrNsrData

badClicksQualityNavboostCrapsCrapsClickSignals
Miss 3 · EngagementClicks and behaviour

The counterpart to good clicks in the same store. Also undocumented, also named plainly.

Why you care. Getting the click is not the finish line. Something happens after the click, and it is recorded.

As documentedNo description. The reference lists this attribute with a name and a type only.google_api_content_warehouse 0.4.0, module QualityNavboostCrapsCrapsClickSignals

chromeInTotalQualityNsrNsrData
Miss 3 · EngagementClicks and behaviour

A site level count of views recorded through the Chrome browser. Views, at site level, from the browser.

Why you care. Traffic from outside search is visible to this system, which is why the audience you build elsewhere is not invisible to it.

As documentedSite-level Chrome views.google_api_content_warehouse 0.4.0, module QualityNsrNsrData

countryQualityNavboostCrapsCrapsData
Miss 3 · EngagementClicks and behaviour

The two letter country slice a set of click data belongs to, with US, FR and BR as the documented examples. Click data is stored per country.

Why you care. Behaviour is sliced by market. Performing well in one country does not automatically carry to another.

As documentedThe two-letter uppercase country slice of the CrapsData. Examples: "US", "FR", "BR"google_api_content_warehouse 0.4.0, module QualityNavboostCrapsCrapsData

crapsAbsoluteHostSignalsCompressedQualitySignals
Miss 3 · EngagementClicks and behaviour

Unsquashed impressions held at host level rather than page level. The documentation says not to use it with compressed ratios.

Why you care. Behaviour is aggregated up to the whole site, not only kept per page.

As documentedImpressions, unsquashed, host level, not to be used with compressed ratios. Not to be used in Pattern Data.google_api_content_warehouse 0.4.0, module CompressedQualitySignals

crapsNewUrlSignalsCompressedQualitySignals
Miss 3 · EngagementClicks and behaviour

Compressed click signals held at URL level. The documentation warns against reading the field directly, even to check whether it is set.

Why you care. An internal warning label on a field is a good reminder that outside readings of this documentation are approximations.

As documentedFor craps_[url|pattern]_signals, please avoid accessing these fields directly, even in minor ways like checking has_craps_*. Instead, please use methods from quality/navboost/craps/craps-lossy-compression.h or talk to craps-team@.google_api_content_warehouse 0.4.0, module CompressedQualitySignals

deviceQualityNavboostCrapsCrapsData
Miss 3 · EngagementClicks and behaviour

The device and operating system slice a set of click data belongs to. Mobile and desktop behaviour are held apart.

Why you care. A page that works on desktop and frustrates people on a phone shows up as two different records.

As documentedThe device interface and os slice of the CrapsData.google_api_content_warehouse 0.4.0, module QualityNavboostCrapsCrapsData

goodClicksQualityNavboostCrapsCrapsClickSignals
Miss 3 · EngagementClicks and behaviour

One of the click counts kept in the Navboost click signal store. It is undocumented in the reference, and its name is the description.

Why you care. Clicks are sorted into kinds. There is a category called good, and one called bad, and they are counted separately.

As documentedNo description. The reference lists this attribute with a name and a type only.google_api_content_warehouse 0.4.0, module QualityNavboostCrapsCrapsClickSignals

lastLongestClicksQualityNavboostCrapsCrapsClickSignals
Miss 3 · EngagementClicks and behaviour

Counts the clicks that were the last and longest in a search session. In plain terms, the result that ended the search.

Why you care. Being the answer somebody stops at is measurable, and it is a different thing from being clicked.

As documentedNo description. The reference lists this attribute with a name and a type only.google_api_content_warehouse 0.4.0, module QualityNavboostCrapsCrapsClickSignals

metroNavboostCountryCountryAttachment
Miss 3 · EngagementClicks and behaviour

A list pairing metro area features with a Navboost value. Behaviour data goes down to the city level.

Why you care. For a local business this is the layer that matters, and it is finer grained than most people assume.

As documentedMetro navboost: list of (NavBoost feature V2, navboost float) pairs.google_api_content_warehouse 0.4.0, module CountryCountryAttachment

rawNavboostCompositeDocIndexingInfo
Miss 3 · EngagementClicks and behaviour

The Navboost count for a page's canonical URL before duplicate URLs are folded in. It is the unaggregated figure.

Why you care. Duplicate versions of a page have their behaviour combined, which is one reason duplicate URLs are worth cleaning up.

As documentedThe raw navboost count for the canonical url without aggregating the navboost from dup urls. This field is used when building forwarding map.google_api_content_warehouse 0.4.0, module CompositeDocIndexingInfo

titlematchScoreQualityNsrNsrData
Miss 3 · EngagementClicks and behaviour

A site level score for how well a site's titles match the searches people type. It is described as exactly that.

Why you care. Titles are assessed against real searches at site level, so a habit of vague titles is measured across everything you publish.

As documentedTitlematch score of the site, a signal that tells how well titles are matching user queries.google_api_content_warehouse 0.4.0, module QualityNsrNsrData

unicornClicksQualityNavboostCrapsCrapsClickSignals
Miss 3 · EngagementClicks and behaviour

A subset of clicks tied to an event from what the documentation calls a Unicorn user. The term is not explained in the reference.

Why you care. Not every click is weighted the same, and some of the reasons are not written down anywhere public.

As documentedThe subset of clicks that are associated with an event from a Unicorn user.google_api_content_warehouse 0.4.0, module QualityNavboostCrapsCrapsClickSignals

unsquashedImpressionsQualityNavboostCrapsCrapsClickSignals
Miss 3 · EngagementClicks and behaviour

A raw impression count before any smoothing is applied. The documentation notes the current format uses two instances instead.

Why you care. Both raw and adjusted versions of this data exist, which is a sign of how much processing sits behind a single number.

As documentedThis is not being populated for the current format - instead two instances of CrapsClickSignals (squashed/unsquashed) are used. We are migrating to the new format where this field will be populated.google_api_content_warehouse 0.4.0, module QualityNavboostCrapsCrapsClickSignals

authorityPromotionCompressedQualitySignals
Miss 4 · MentionsSite authority and entity

A promotion applied on the basis of authority, converted from an internal quality boost. It moves things up rather than down.

Why you care. Authority is not only protective. There is a field whose job is to promote.

As documentedauthority promotion: converted from QualityBoost.authority.boostgoogle_api_content_warehouse 0.4.0, module CompressedQualitySignals

clusterIdQualityNsrNsrData
Miss 4 · MentionsSite authority and entity

An identifier grouping sites into clusters, used in what the documentation calls ecosystem experiments. Sites are studied in groups.

Why you care. Your site is understood partly through the company it sits in, not only on its own terms.

As documentedAn id for defining clusters of sites. Used in ecosystem experiments (project Tundra).google_api_content_warehouse 0.4.0, module QualityNsrNsrData

experimentalQstarSignalCompressedQualitySignals
Miss 4 · MentionsSite authority and entity

A signal not sent to the search shards, populated instead at serving time. It exists for experiments.

Why you care. Some of what affects results is calculated at the moment of the search, not stored in advance.

As documentedThis field is *not* propagated to shards. It is meant to be populated at serving time using one of the versions present in the `experimental_nsr_team_wsj_data` field above (using the `ExperimentalNsrTeamDataOverridesParams` opti to populate it; see http://source/search?q=ExperimentalNsrTeamDataOverridesParams%20file:ascorer.proto). The purpose of this field is to be read by an experimental Q* component, in order to quickly run LEs with new components. See go/0DayLEs for details.google_api_content_warehouse 0.4.0, module CompressedQualitySignals

localityScoreQualityNsrNsrData
Miss 4 · MentionsSite authority and entity

The locality part of a local authority signal, held at site level. It is about place, not quality.

Why you care. Local relevance is a stored site level property, not something a single page can claim on its own.

As documentedLocality score of the site, i.e. the locality component of the LocalAuthority signal (see go/pq-localauthority).google_api_content_warehouse 0.4.0, module QualityNsrNsrData

lowQualityCompressedQualitySignals
Miss 4 · MentionsSite authority and entity

A low quality score converted from the site quality system and applied in the main ranking stage. It is site derived and page applied.

Why you care. Site level judgement is converted into something that acts on individual pages.

As documentedS2V low quality score: converted from quality_nsr.NsrData, applied in Qstar. See quality_nsr::util::ConvertNsrDataToLowQuality.google_api_content_warehouse 0.4.0, module CompressedQualitySignals

nsrConfidenceCompressedQualitySignals
Miss 4 · MentionsSite authority and entity

A confidence score for the site quality value, marked deprecated in favour of a newer field. Confidence is tracked separately from the score.

Why you care. The system stores how sure it is about you, and a new site gives it very little to be sure about.

As documentedNSR confidence score: converted from quality_nsr.NsrData. This field is deprecated - use nsr_variance inside nsr_data_proto instead.google_api_content_warehouse 0.4.0, module CompressedQualitySignals

nsrdataFromFallbackPatternKeyQualityNsrNsrData
Miss 4 · MentionsSite authority and entity

True when no site quality data was computed for a site, so an average of other sites is used instead. A stand-in value.

Why you care. A new or small site can be scored on an average of others rather than on itself.

As documentedIf true indicates that we do not have NSR data computed for the chunk, and instead the data is coming from an average of other host chunks.google_api_content_warehouse 0.4.0, module QualityNsrNsrData

nsrOverrideBidQualityNsrNsrData
Miss 4 · MentionsSite authority and entity

A value that can override the site quality score outright. The documentation says it should only be used in an emergency.

Why you care. Manual overrides exist. Not everything in ranking is the output of a model.

As documentedThis signal is used to unconditionally override NSR as a bid in Q*. Should only be used in case of emergency (see go/nsr-override-bid). To have any effect, the value should be present and greater than 0.001.google_api_content_warehouse 0.4.0, module QualityNsrNsrData

nsrVersionedDataCompressedQualitySignals
Miss 4 · MentionsSite authority and entity

A versioned site quality score kept so an upcoming version can be evaluated alongside the current one. Two versions run at once.

Why you care. Quality scoring is under constant revision, which is why any advice built on one snapshot has a shelf life.

As documentedVersioned NSR score to be used in continuous evaluation of the upcoming NSR version and assess quality impact on various slices. This field is deprecated - used the equivalent field inside nsr_data_proto instead.google_api_content_warehouse 0.4.0, module CompressedQualitySignals

nsrQualityNsrNsrData
Miss 4 · MentionsSite authority and entity

The core site quality value in this family of fields, carrying no description in the documentation. Everything around it is named in relation to it.

Why you care. The most referenced value in the site quality module is also one of the least explained.

As documentedNo description. The reference lists this attribute with a name and a type only.google_api_content_warehouse 0.4.0, module QualityNsrNsrData

peopleEntitiesIdImageQualitySensitiveMediaOrPeopleEntities
Miss 4 · MentionsSite authority and entity

Identifiers for the five people most strongly associated with a document. People are stored as entities with their own identifiers.

Why you care. Named authors are not decoration. People exist as things the system can recognise across the whole web.

As documentedhrid of the 5 people entities with higher topicality in the documentgoogle_api_content_warehouse 0.4.0, module ImageQualitySensitiveMediaOrPeopleEntities

salienceAttentionalEntitiesMentionProperties
Miss 4 · MentionsSite authority and entity

How prominent a mention of a thing is within a document. Being mentioned and being the subject are different.

Why you care. Naming your service once in a footer is not the same as the page being about it.

As documentedHow salient this mention is. This field will only be set if the mention is derived from a SearchAnswerValue. See go/webresultsdata-as-aes for more details.google_api_content_warehouse 0.4.0, module AttentionalEntitiesMentionProperties

siteAuthorityCompressedQualitySignals
Miss 4 · MentionsSite authority and entity

A site level authority value, converted from the site quality system and applied in the main ranking stage. The documentation names it plainly.

Why you care. A site wide authority measure is stored. What lives on the rest of your site affects the page you care about.

As documentedsite_authority: converted from quality_nsr.SiteAuthority, applied in Qstar.google_api_content_warehouse 0.4.0, module CompressedQualitySignals

siteAutopilotScoreQualityNsrNsrData
Miss 4 · MentionsSite authority and entity

An aggregate of page level autopilot scores across a site chunk. Autopilot is not defined in the reference.

Why you care. Another honest gap. The field is real, the name suggests something, and nothing confirms it.

As documentedAggregated value of url autopilot scores for this sitechunk.google_api_content_warehouse 0.4.0, module QualityNsrNsrData

siteChunkSourceQualityNsrNsrData
Miss 4 · MentionsSite authority and entity

Records where a site's grouping came from, annotated only in one specific system. It is provenance for the grouping.

Why you care. How your site is carved up for scoring is itself a stored decision with a recorded origin.

As documentedThese are only annotated in the Goldmine NSR annotator.google_api_content_warehouse 0.4.0, module QualityNsrNsrData

siteChunkQualityNsrNsrData
Miss 4 · MentionsSite authority and entity

The unit a site is divided into for scoring, usually the host but sometimes based on page markup. It is how the system decides what counts as one site.

Why you care. A subdomain or a section can be treated as its own site, which changes what your authority actually applies to.

As documentedPrimary NSR sitechunk. In most of the cases it's same as HOST_LEVEL_V3 sitechunked canonical url of the document. In rare, but important cases it's based on page markup (see quality/nsr/util/sitechunker.h for details).google_api_content_warehouse 0.4.0, module QualityNsrNsrData

siteFocusScoreQualityAuthorityTopicEmbeddingsVersionedItem
Miss 4 · MentionsSite authority and entity

A number for how much a site concentrates on one topic. Focused sites and scattered sites produce different values.

Why you care. Publishing about everything has a cost that is stored as a number. Narrowness is legible.

As documentedNumber denoting how much a site is focused on one topic.google_api_content_warehouse 0.4.0, module QualityAuthorityTopicEmbeddingsVersionedItem

siteLinkOutQualityNsrNsrData
Miss 4 · MentionsSite authority and entity

An aggregate of how much the pages of a site link out. Outbound linking is measured at site level.

Why you care. Who you link to is stored as a property of your whole site.

As documentedAggregated value of url link out scores for this sitechunk.google_api_content_warehouse 0.4.0, module QualityNsrNsrData

siteQualityStddevsQualityNsrNsrData
Miss 4 · MentionsSite authority and entity

Standard deviations of site quality, stored as versioned values with no further description. It measures spread.

Why you care. How evenly good your site is gets its own number, separate from how good it is.

As documentedNo description. The reference lists this attribute with a name and a type only.google_api_content_warehouse 0.4.0, module QualityNsrNsrData

siteRadiusQualityAuthorityTopicEmbeddingsVersionedItem
Miss 4 · MentionsSite authority and entity

Measures how far a single page's content drifts from what the site as a whole is about. It is a distance, not a quality score.

Why you care. A page far outside your usual subject is measurably an outlier on your own site.

As documentedThe measure of how far page_embeddings deviate from the site_embedding.google_api_content_warehouse 0.4.0, module QualityAuthorityTopicEmbeddingsVersionedItem

unauthoritativeScoreCompressedQualitySignals
Miss 4 · MentionsSite authority and entity

A score for how unauthoritative a page looks, used among the web page quality signals in the main ranking stage. It is the negative direction of the same idea.

Why you care. There is a number for looking like nobody in particular, and it is applied where it counts.

As documentedUnauthoritative score. Used as one of the web page quality qstar signals.google_api_content_warehouse 0.4.0, module CompressedQualitySignals

salientCountriesCountryCountryAttachment
Miss 4 · MentionsFan-out and topicality

The countries a document is most relevant to, marked experimental in the documentation. Absence from the list carries meaning too.

Why you care. Which market a page belongs to is inferred, not declared. A local business benefits from being obviously local.

As documented[Experimental]: Top salient countries for a doc. If a country can not be found on this field it can be considered that this doc is not relevant to it.google_api_content_warehouse 0.4.0, module CountryCountryAttachment

i18nBucketQualityNsrNsrData
Miss 5 · Fan-outFan-out and topicality

A bucket for language and region grouping at site level. It ties a site to a language market.

Why you care. Language and market are structural, not something a translated page can assert on its own.

As documentedCurrently corresponds to i18n_g42_bucket.google_api_content_warehouse 0.4.0, module QualityNsrNsrData

languageQualityNavboostCrapsCrapsData
Miss 5 · Fan-outFan-out and topicality

The language slice a set of click data belongs to, with en, fr and pt-BR as documented examples. Behaviour is stored per language.

Why you care. Search behaviour in one language says nothing about another, and the data structure keeps them apart.

As documentedThe language slice of the CrapsData. Examples: "en", "fr", "pt-BR",google_api_content_warehouse 0.4.0, module QualityNavboostCrapsCrapsData

originalTitleHardTokenCountPerDocData
Miss 5 · Fan-outFan-out and topicality

Counts the meaningful words in a page's original title. Hard tokens are the words that carry content.

Why you care. Title length is measured in real words. There is also a field for the count once filler words are removed.

As documentedThe number of hard tokens in the title.google_api_content_warehouse 0.4.0, module PerDocData

site2vecEmbeddingEncodedQualityNsrNsrData
Miss 5 · Fan-outFan-out and topicality

A compressed embedding representing the whole site, stored because the full version takes too much room. It is the site as a set of numbers.

Why you care. There is a single mathematical summary of what your site is about, and everything you publish moves it.

As documentedEncoded site2vec embedding (to be used in superroot) since the full embeddings take too much space.google_api_content_warehouse 0.4.0, module QualityNsrNsrData

titleHardTokenCountWithoutStopwordsPerDocData
Miss 5 · Fan-outFan-out and topicality

The same count with filler words such as the and of removed. It measures the substance of a title.

Why you care. Padding a title out does not make it longer in the way this field measures.

As documentedNumber of hard tokens originally in title without counting the stopwords.google_api_content_warehouse 0.4.0, module PerDocData

topicEmbeddingsVersionedDataCompressedQualitySignals
Miss 5 · Fan-outFan-out and topicality

Versioned topic embedding data, meant to be used directly by scoring systems. Embeddings are a mathematical description of subject matter.

Why you care. Your subject matter is stored as a position in space, not as a list of keywords.

As documentedVersioned TopicEmbeddings data to be populated later into superroot / used directly in scorers.google_api_content_warehouse 0.4.0, module CompressedQualitySignals

creationDateAnchorsAnchor
Miss 1 · LinksFreshness

Records the first and last time a link was seen, kept for history. The documentation notes it is also used in a Twitter indexing path.

Why you care. Links have an age and a history, so a burst of new ones has a shape that a steady accumulation does not.

As documentedused for history - the first and last time we have seen this anchor. creation_date also used for Freshdocs Twitter indexing, a retweet is an anchor of the original tweet. This field records the time when a retweet is created.google_api_content_warehouse 0.4.0, module AnchorsAnchor

lastUpdateTimestampAnchorsAnchor
Miss 1 · LinksFreshness

The moment a link record was last updated during indexing. It is used for history and freshness tracking.

Why you care. Links are re-checked over time. A link is not a one off event that stays fixed.

As documentedUsed for history and freshness tracking - the timestamp this anchor is updated in indexing.google_api_content_warehouse 0.4.0, module AnchorsAnchor

lastSignificantUpdateCompositeDocQualitySignals
Miss 2 · EffortFreshness

A date recording the last meaningful change to a page, used for the date last modified filter. The documentation says it is a combined date.

Why you care. Changing a published date without changing the page is not what this field tracks.

As documentedContains a date used for the "Date Last Modified" toolbelt restrict mode. Note: this date is a combined date and is different from the pure shingle-based signal stored in contentage.last_significant_update field.google_api_content_warehouse 0.4.0, module CompositeDocQualitySignals

hostAgePerDocData
Miss 4 · MentionsFreshness

The earliest date any page on a domain was first seen. The documentation says it is used to sandbox fresh spam.

Why you care. New domains are treated with suspicion by design, and the documentation says so in as many words.

As documentedThe earliest firstseen date of all pages in this host/domain. These data are used in twiddler to sandbox fresh spam in serving time. It is 16 bit and the time is day number after 2005-12-31, and all the previous time are set to 0. If this url's host_age == domain_age, then omit domain_age Please use //spam/content/siteage-util.h to convert the day between epoch second. Regarding usage of Sentinel values: We would like to check if a value exists in scoring bundle while using in Ranklab AST. For this having a sentinel value will help us know if the field exists or has a sentinel value (in the case it does not exist). 16-bitgoogle_api_content_warehouse 0.4.0, module PerDocData

nsrEpochQualityNsrNsrData
Miss 4 · MentionsFreshness

Records which epoch a site quality value came from. Scores have a vintage attached.

Why you care. Site quality values are not continuously live. A stale score can be describing a version of your site that no longer exists.

As documentedThe epoch from which this NSR value is coming from.google_api_content_warehouse 0.4.0, module QualityNsrNsrData

bylineDateNlpSaftDocument
Miss 5 · Fan-outFreshness

The date that will actually be shown beside a page in search results. It is the display date, separate from the estimated one.

Why you care. What people see and what the system believes are two different dates in two different fields.

As documentedDocument's byline date, if available: this is the date that will be shown in the snippets in web search results. It is stored as the number of seconds since epoch. See segindexer/compositedoc.protogoogle_api_content_warehouse 0.4.0, module NlpSaftDocument

crawlTimeWWWDocInfo
Miss 5 · Fan-outFreshness

The time a document was crawled, stored as seconds since the standard computing epoch. A plain timestamp.

Why you care. When something was fetched and when it was published are separate facts held in separate places.

As documentedLast time this doc crawledgoogle_api_content_warehouse 0.4.0, module WWWDocInfo

freshboxArticleScoresPerDocData
Miss 5 · Fan-outFreshness

Stores scores from several freshness classifiers, including a freshbox article score and a live blog score. Freshness has more than one measure.

Why you care. News style freshness is a specific thing with its own scoring, not a general reward for recent dates.

As documentedStores scores of freshness-related classifiers: freshbox article score, live blog score and host-level article score. The encoding/decoding API is in quality/freshness/freshbox/goldmine/freshbox_annotation_encoder.h. To use this field, you MUST join g/pq-classifiers-announce and add your use case at http://shortn/_RYXS2lX2IV.google_api_content_warehouse 0.4.0, module PerDocData

semanticDateInfoPerDocData
Miss 5 · Fan-outFreshness

Holds confidence scores for the day, month and year parts of that estimated date. The estimate comes with its own uncertainty attached.

Why you care. A date is not one fact here. It is a guess with a confidence level, held in three parts.

As documentedInfo is encoded using a SemanticDate specific format. Contains confidence scores for day/month/year components as well as various meta data required by the freshness twiddlers.google_api_content_warehouse 0.4.0, module PerDocData

semanticDatePerDocData
Miss 5 · Fan-outFreshness

An estimate of how old a page's content actually is, worked out from the writing itself, the links pointing at it and related pages. It is a judgement, not a field you fill in.

Why you care. This is the field that makes changing a published date pointless. The system forms its own view of a page's age.

As documentedSemanticDate, estimated date of the content of a document based on the contents of the document (via parsing), anchors and related documents. Date is encoded as a 32-bits UNIX date (1970 Jan 1 epoch). Confidence is encoded using a SemanticDate specific format. For details of encoding, please refer to quality/freshness/docclassifier/semanticdate/public/semantic_date.protogoogle_api_content_warehouse 0.4.0, module PerDocData

syntacticDateNlpSaftDocument
Miss 5 · Fan-outFreshness

A date pulled directly out of a page's URL or its title. It is read off, not inferred.

Why you care. A year in your URL sticks around as a fact about the page long after you stop thinking about it.

As documentedDocument's syntactic date (e.g. date explicitly mentioned in the URL of the document or in the document title). It is stored as the number of seconds since epoch. See quality/timebased/syntacticdate/proto/syntactic-date.protogoogle_api_content_warehouse 0.4.0, module NlpSaftDocument

trustSyntacticDateInRankingQualityTimebasedSyntacticDate
Miss 5 · Fan-outFreshness

A single bit marking a date as high confidence enough to use in ranking, without qualifying as a display date. Trust and display are separated.

Why you care. Three different date fields can disagree about your page, and one of them decides whether the others are believed.

As documentedThis bit is set if we believe that the syntactic date is really high confidence, but does not qualify as a byline date.google_api_content_warehouse 0.4.0, module QualityTimebasedSyntacticDate

urldateCompositeDoc
Miss 5 · Fan-outFreshness

The date extracted from a URL, set to midnight GMT on that day. A dedicated piece of code exists to find it.

Why you care. Putting a year in a URL is a permanent decision. Removing it later means changing the URL.

As documentedDate in the url extracted by quality/snippets/urldate/date-in-url.cc This is given as midnight GMT on the date in question.google_api_content_warehouse 0.4.0, module CompositeDoc

babyPandaV2DemotionCompressedQualitySignals
Miss 2 · EffortDemotions and spam

A newer demotion applied on top of Panda, described as replacing an earlier version. Layers on layers.

Why you care. Quality demotions stack. Removing one problem does not necessarily lift everything.

As documentedNew BabyPanda demotion, applied on top of Panda. This is meant to replace |baby_panda_demotion|.google_api_content_warehouse 0.4.0, module CompressedQualitySignals

GibberishScorePerDocData
Miss 2 · EffortDemotions and spam

A seven bit score for how much a page reads as nonsense, from 0 to 127. It is about the text making sense, not who wrote it.

Why you care. Note what it does not measure. There is no field here asking whether a machine wrote your page.

As documentedThe gibberish score is represented in 7 bits, going from 0 to 127.google_api_content_warehouse 0.4.0, module PerDocData

KeywordStuffingScorePerDocData
Miss 2 · EffortDemotions and spam

A seven bit keyword stuffing score, from 0 to 127. It measures repetition of terms on a page.

Why you care. Writing for a keyword rather than a reader has had a dedicated field for a very long time.

As documentedThe keyword stuffing score is represented in 7 bits, going from 0 to 127.google_api_content_warehouse 0.4.0, module PerDocData

pandaDemotionCompressedQualitySignals
Miss 2 · EffortDemotions and spam

The encoded form of the Panda quality fields, carried as a site quality feature. Panda is the long running content quality system.

Why you care. Content quality demotion is a live stored value, not a historical algorithm update people once wrote about.

As documentedThis is the encoding of Panda fields in the proto SiteQualityFeatures in quality/q2/proto/site_quality_features.proto. The encoding/decoding is performed using functions from quality_coati::coati_util.google_api_content_warehouse 0.4.0, module CompressedQualitySignals

productReviewPDemoteSiteCompressedQualitySignals
Miss 2 · EffortDemotions and spam

A confidence value for demoting a whole site over its product reviews, multiplied by a thousand and rounded down. Site level, not page level.

Why you care. Thin review content can pull down a site rather than only the pages it sits on.

As documentedProduct review demotion/promotion confidences. (Times 1000 and floored)google_api_content_warehouse 0.4.0, module CompressedQualitySignals

spamtokensContentScorePerDocData
Miss 2 · EffortDemotions and spam

A content score used to decide whether a page is user generated spam. It feeds a system called SiteBoostTwiddler.

Why you care. If people can post on your site, the quality of what they post is your problem too.

As documentedFor SpamTokens content scores. Used in SiteBoostTwiddler to determine whether a page is UGC Spam. See go/spamtokens-dd for details.google_api_content_warehouse 0.4.0, module PerDocData

navDemotionCompressedQualitySignals
Miss 3 · EngagementDemotions and spam

A demotion converted from a navigation related quality boost. It comes from the behaviour side of the system.

Why you care. Behaviour can subtract as well as add, and it does so through a named field.

As documentednav_demotion: converted from QualityBoost.nav_demoted.boost.google_api_content_warehouse 0.4.0, module CompressedQualitySignals

serpDemotionCompressedQualitySignals
Miss 3 · EngagementDemotions and spam

A demotion applied in the main ranking stage, named after the results page itself. The documentation gives no further detail.

Why you care. A named demotion with no explanation is the honest shape of a lot of this material.

As documentedserp demotion: applied in Qstar.google_api_content_warehouse 0.4.0, module CompressedQualitySignals

DocLevelSpamScorePerDocData
Miss 4 · MentionsDemotions and spam

A page level spam score held in seven bits, from 0 to 127. One number for the page as a whole.

Why you care. Spam judgement is stored per page, at a resolution fine enough to sit between clean and penalised.

As documentedThe document spam score is represented as a 7-bits, going from 0 to 127.google_api_content_warehouse 0.4.0, module PerDocData

exactMatchDomainDemotionCompressedQualitySignals
Miss 4 · MentionsDemotions and spam

A demotion tied to domains that exactly match a search phrase. Buying a keyword domain is the behaviour it addresses.

Why you care. A domain name stuffed with your keyword is a known pattern with a field named after it.

As documentedPage quality signals converted from fields in proto QualityBoost in quality/q2/proto/quality-boost.proto. To save indexing space, we convert the float values in [0, 1] to integers in range [0, 1023] (use 10 bits). exact_match_domain_demotion: converted from QualityBoost.emd.boost.google_api_content_warehouse 0.4.0, module CompressedQualitySignals

scamnessCompressedQualitySignals
Miss 4 · MentionsDemotions and spam

A scam model score used among the web page quality signals, ranging from 0 to 1023. It is a model output, not a rule.

Why you care. Looking untrustworthy is scored on a scale, and the scale is unusually wide.

As documentedScam model score. Used as one of the web page quality qstar signals. Value range from 0 to 1023.google_api_content_warehouse 0.4.0, module CompressedQualitySignals

trendspamScorePerDocData
Miss 5 · Fan-outDemotions and spam

Described as a count of matching trend spam queries. It relates to chasing whatever is briefly popular.

Why you care. Publishing on a trend purely because it is trending is a recognised pattern with a counter attached.

As documentedFor now, the count of matching trendspam queries.google_api_content_warehouse 0.4.0, module PerDocData

Miss 4, the first fix

Somewhere to actually get mentioned

The brand-minus-domain search is the fastest diagnosis on this page and usually the bleakest one. The fix is not clever: get listed in places that are real. This is our free list of legitimate, free link sources, embedded here and referenced inside the skill so you have it either way. Read it here, or take your own copy and work through it.

Working in the UK, the US or Australia? There are region-specific versions on the resources page.

How to use it

Five minutes, start to finish

1. Install it, or paste it

Download the .md file below and save it to ~/.claude/skills/whats-my-website-missing/SKILL.md. A flat file in the skills folder never loads, so keep the folder and the SKILL.md name. If you would rather not install anything, paste the file into a new Claude Project as the system prompt instead.

2. Give it two things

Your website, and the one page you most want to be found. Add a third if you have it: the URL of a site offering you a link, and check 1 will grade that page instead of guessing.

3. Read THE ONE THING first

You get five verdict lines, a grade of desk, shelves or basement, and one fix. Do that one. Come back and re-run that single check when you have.

Free download. No email required.

Get the skill

The Claude Skill

An installable .md skill that runs all five checks on your site and names the one to fix first. Same format as every Hawk Academy Claude SEO skill.

Download the skill

The documentation itself

The public 0.4.0 mirror of the leaked reference on hexdocs. This is where every quote on this page comes from, and you can check any of them.

Read the source

Five checks. One grade. One thing to fix.

Want the full library? There are more free Claude SEO skills where this came from.