Has JSON-LD BookStore is a 0 / 1 flag for whether a page’s raw source contains an @type value of BookStore in its JSON-LD structured data, which describes a shop that sells books. Important caveat: RankGear matches the text pattern rather than parsing the graph, so a matching string outside valid JSON-LD can still return 1.
| Factor ID | RG-SCJ-037 |
|---|---|
| Family | Structured data — JSON-LD |
| Measurement | Binary presence (0 / 1) |
| Measured zone | Raw rendered HTML |
What it measures
This factor reports whether RankGear finds an @type value of BookStore in the raw source. The BookStore type describes a shop that sells books, and when declared in JSON-LD it carries the store’s identity, location, hours, and contact details in a machine-readable form. The factor is a simple present-or-absent signal, not a measure of how complete or valid the surrounding markup is.
How RankGear measures it
RankGear performs a case-insensitive search of the raw HTML for "@type": "BookStore", allowing flexible whitespace around the colon and permitting an optional schema: prefix on the type value. It returns 1 when that pattern is found anywhere in the source and 0 when it is not. Because the match is case-insensitive, capitalization differences in the type value do not affect detection.
What RankGear looks for
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BookStore",
"name": "Corner Books",
"address": { ... },
"openingHours": "Mo-Sa 09:00-18:00",
"telephone": "+1-555-0100"
}
</script>
# matched pattern (case-insensitive, flexible whitespace, optional schema: prefix):
# "@type": "BookStore" | "@type": "schema:BookStore"| Value | Meaning |
|---|---|
| 1 | A BookStore @type string was found in the raw source. |
| 0 | No BookStore @type string was found in the raw source. |
How to optimize it
Treat this as an observation, not a target. Use BookStore only for a genuine bookstore, with accurate location, hours, inventory context, and contact information, and supply properties that match your visible content. Do not add the type to a page that is not a real bookstore in order to move the score — because the check is a text match, an inaccurate declaration would register a 1 while misrepresenting your business.
Important considerations
- RankGear pattern-matches text rather than parsing or validating the JSON-LD graph.
- A matching string outside valid JSON-LD can produce a 1, so the flag does not confirm well-formed markup.
- Capitalization differences in the type value do not affect detection.
- Validate the complete structured data independently with a dedicated tool.
- Structured data correlates with, and does not guarantee, ranking outcomes; it is a prioritization signal measured within a result set, not a cause of position.
Related factors
Part of the Factors reference · how RankGear measures · glossary.