Local Landing Page QA avatar

Local Landing Page QA

Pricing

from $4.90 / 1,000 page auditeds

Go to Apify Store
Local Landing Page QA

Local Landing Page QA

Audit city/service landing pages for metadata, structure, internal links, schema, and content quality signals.

Pricing

from $4.90 / 1,000 page auditeds

Rating

0.0

(0)

Developer

junipr

junipr

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Audit city/service landing pages for metadata, structure, internal links, schema, and content quality signals.

Run a focused quality audit for city and service landing pages. Each page receives ten separate checks covering HTTPS, indexability, title, meta description, canonical URL, H1, local structured data, internal links, location relevance, and visible content depth.

Results At A Glance

  • Structured dataset rows designed for filtering, exports, and API delivery.
  • Stable source and record identifiers for repeatable runs.
  • Honest null values and diagnostic rows when evidence is unavailable.
  • Explicit limits for targets, records, source bytes, and optional reports.
  • Pay-per-event billing that stops before paid output when the run budget is exhausted.

Common Uses

  • Check city pages before publication
  • Compare quality controls across service-area pages
  • Find noindex, canonical, heading, and structured-data gaps
  • Produce evidence rows for an SEO remediation backlog
  • Verify that a page actually mentions its intended city or service

How It Works

  1. Normalize each page and preserve the expected city and service supplied by the user.
  2. Retrieve public HTML only when fetchUrls is enabled.
  3. Extract page-level metadata and visible content signals.
  4. Run ten independent checks rather than collapsing the audit into one score.
  5. Write one row per check with evidence and a concrete recommendation.
  6. Summarize pass, warning, and failure counts in optional report records.

Input

FieldPurpose
targetsLanding pages with URL, HTML, city, state, and service context.
urlsPublic landing-page URLs for bounded retrieval.
fetchUrlsEnables public HTTP(S) retrieval.
maxTargetsLimits pages to 1-50.
maxTextBytesCaps retained HTML per page.
includeReportWrites JSON and Markdown report records.

No field is required for the first run. The bundled bounded example demonstrates the output without making a network request. For URL retrieval, provide public HTTP(S) URLs without embedded credentials and enable the relevant retrieval control.

Input Example

{
"targets": [
{
"sourceId": "nashville-roof-repair",
"sourceUrl": "https://example.com/nashville-roof-repair",
"locationName": "Nashville",
"city": "Nashville",
"state": "TN",
"service": "Roof Repair",
"html": "<!doctype html><html><head><title>Nashville Roof Repair | Acme Roofing</title><meta name=\"description\" content=\"Schedule roof repair and storm damage inspections with Acme Roofing professionals serving Nashville and nearby communities in Middle Tennessee.\"><link rel=\"canonical\" href=\"https://example.com/nashville-roof-repair\"><meta name=\"robots\" content=\"index,follow\"><script type=\"application/ld+json\">{\"@type\":\"LocalBusiness\",\"name\":\"Acme Roofing Nashville\"}</script></head><body><h1>Nashville Roof Repair Services</h1><p>Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. </p><a href=\"/services\">Services</a><a href=\"/contact\">Contact</a></body></html>"
}
],
"maxTargets": 1,
"fetchUrls": false,
"includeReport": true
}

Dataset Output

  • One row for each of ten named controls
  • Pass, warning, failure, or blocked status with severity and score
  • Extracted evidence such as title, canonical URL, H1, robots directive, and link count
  • City, service, page URL, and a correction recommendation

Every dataset row includes pricingEventName so cost-bearing output can be traced to its event. A blocked source can produce a diagnostic row with a null event name; that row is not represented as successful extraction.

Output Records

  • Dataset: {{links.apiDefaultDatasetUrl}}/items
  • Results JSON: {{links.apiDefaultKeyValueStoreUrl}}/records/LOCAL_LANDING_PAGE_QA_RESULTS.json
  • Summary JSON: {{links.apiDefaultKeyValueStoreUrl}}/records/LOCAL_LANDING_PAGE_QA_SUMMARY.json
  • Markdown report: {{links.apiDefaultKeyValueStoreUrl}}/records/LOCAL_LANDING_PAGE_QA_REPORT.md

Report records are written only when includeReport is enabled, there is paid output to report, and the report event is accepted. Digest records follow the same rule for includeDigest.

Pricing

This actor uses pay-per-event pricing. The configured event prices include platform usage; no separate platform-usage pass-through is expected for these events.

EventPrice (USD)When it is charged
actor-start$0.00500Before paid run setup.
page-audited$0.00490Before a page audit is accepted.
record-extracted$0.00372Before an extracted row is written.
finding-emitted$0.00372Before a finding-bearing row is written.
audit-report-generated$0.05000Before audit report records are written.

The default maximum charge is $10.00. Input limits and run-budget limits remain independent: a broad input can still stop early when another event cannot be charged. A rejected or partial charge prevents the matching paid row or report from being written.

Public Tasks

  • Audit public URLs for Local Landing Page QA issues: Audit city/service landing pages for metadata, structure, internal links, schema, and content quality signals. This task uses one bounded, credential-free example.
  • Find Local Landing Page QA problems across a website: Audit city/service landing pages for metadata, structure, internal links, schema, and content quality signals. This task uses one bounded, credential-free example.
  • Generate a technical Local Landing Page QA report: Audit city/service landing pages for metadata, structure, internal links, schema, and content quality signals. This task uses one bounded, credential-free example.
  • Check a city service landing page: Audit city/service landing pages for metadata, structure, internal links, schema, and content quality signals. This task uses one bounded, credential-free example.
  • Review local SEO page evidence: Audit city/service landing pages for metadata, structure, internal links, schema, and content quality signals. This task uses one bounded, credential-free example.

Each task uses one bounded, credential-free input and can be edited before a run. URL retrieval remains disabled in tasks that already include source evidence.

Cost And Scope Controls

  • Start with one target and inspect the dataset before increasing limits.
  • Keep report generation off when only dataset rows are needed.
  • Supply HTML, XML, text, or records directly when repeatability matters.
  • Use URL retrieval only for public sources you are authorized to access.
  • Keep byte and record limits close to the downstream requirement.
  • Treat charge-limit truncation as partial output, not a complete inventory.

Safety

Only public HTTP(S) sources are accepted for retrieval. Credentialed URLs, loopback hosts, private and reserved address ranges, private DNS answers, and redirects are blocked. Responses are read with time and byte limits. The actor does not bypass authentication, CAPTCHAs, paywalls, access controls, or source restrictions.

Do not submit secrets, session cookies, private contact lists, or sensitive personal data. Review source terms and legal requirements before collecting or redistributing public information.

Limitations

  • Automated checks do not replace editorial review of copy quality.
  • The actor does not claim ranking improvement or search-engine approval.
  • Structured-data presence is checked; full rich-result eligibility is outside scope.
  • Private pages, credentialed URLs, and private-network addresses are blocked.

Troubleshooting

A blocked diagnostic row appears

Confirm that source evidence was supplied. For URL retrieval, verify that the URL is public HTTP(S), has no credentials, does not redirect, and fits within the byte and timeout limits.

Fewer rows appear than expected

Check the target and record caps, source formatting, duplicate identifiers, and truncatedByChargeLimit in the summary. Increase one limit at a time after inspecting cost and output quality.

Report records are absent

Set includeReport to true and confirm the run produced paid dataset rows. A report is skipped when its billing event cannot be accepted.

Values are null

Null means the supplied source did not establish the value. Add structured evidence at the source or provide a structured input record; do not treat null as a guessed value.

Integration

Dataset items can be consumed through the Apify API, webhooks, exports, or platform integrations. Use stable sourceId and record identifiers as join keys. Preserve checkedAt, source URLs, status, issue codes, and hashes when building recurring comparisons or audit trails.

For scheduled use, begin with one bounded target, compare output across two runs, and only then increase limits. Downstream automation should handle blocked diagnostics, null values, charge-limit truncation, and source-format changes explicitly.

Output Quality Checklist

Before using results operationally:

  1. Confirm the source URL or supplied evidence is the intended source.
  2. Review warning, failure, blocked, and issue-code fields.
  3. Check null fields against the source rather than filling them automatically.
  4. Confirm the summary does not report charge-limit truncation.
  5. Retain source identifiers and timestamps with exported records.
  6. Validate changed records before sending a digest or updating another system.

FAQ

Does the first run call external websites?

No. The bounded input includes source evidence and leaves URL retrieval disabled.

Can I process several sources?

Yes. Use the target or URL arrays and raise the relevant cap gradually.

Are missing values inferred?

No. Missing values remain null or are named in issue fields.

What happens when a charge is rejected?

The actor stops before writing the matching paid output. Already completed rows remain available and the summary identifies truncation where applicable.

Is the Markdown report the primary output?

No. Dataset rows are the primary machine-readable output. Reports and digests are optional buyer-readable records.

Does this guarantee SEO, compliance, or business outcomes?

No. The actor provides extraction and QA evidence. It does not guarantee rankings, legal compliance, completeness of a third-party source, or commercial results.