Closed or inactive listings redirect to a closed-listing page, not 404
Why it matters
Returning a 404 for a listing that existed and was indexed tells Google the URL is permanently gone with no context, which kills any inbound links and external citations built up over the listing's lifetime. Users who clicked a remembered link or a review site referral get a generic not-found page and assume the entire directory is broken. A dedicated closed-listing page preserves the URL for link equity, explains what happened, and offers alternatives (nearby listings, contact the business) that keep the session alive.
Severity rationale
Low because the 404 response does not corrupt data, but it wastes accumulated SEO equity and trust for closed pages.
Remediation
Check the listing status in the route handler and render a ListingClosed component with a 410 Gone status when the listing is closed or inactive. Keep the URL live so inbound links land on a meaningful page. Implement the branching in src/app/listings/[slug]/page.tsx and add visual treatment (muted colors, closed badge) that clearly distinguishes closed from active listings.
if (listing.status === 'closed' || listing.status === 'inactive') {
return <ListingClosed listing={listing} suggestions={nearby} />
}
Set the response status to 410 in generateMetadata or a route segment config.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Listing Data & Schema Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
Taxons
History
- 2026-04-18·v1.0.0·Initial import from directory-listing-schema·automated