STOP! Do NOT submit to AdSense until these are complete.
- [β
] Cookie Policy page created β
/app/cookie-policy/page.tsx - [β
] Cookie consent banner created β
/components/CookieConsent.tsx - [β ] Privacy Policy updated with Google AdSense disclosure
- [β ] Sitemap updated to include cookie-policy
Verification:
# Test the changes
npm run dev
# Visit http://localhost:3000
# - Clear localStorage
# - Reload page
# - Cookie banner should appear
# - Click through to /cookie-policy
# - Check /privacy for Google partner disclosure# Delete Valentine's Day content (OFF-TOPIC, content farming signal)
Remove-Item -Recurse -Force ./lib/blog/posts/other/
# Verify deletion
Get-ChildItem ./lib/blog/posts/ -Directory
# Should NOT see "other" folderWhy: Valentine's Day relationship advice on a JSON tool site = obvious content farming
Option A: Delete (RECOMMENDED)
# Delete the placeholder page
Remove-Item ./app/tools/json-schema-generator/page.tsx
# Update tools listing page
# Open: ./app/tools/page.tsx
# Find the json-schema-generator entry
# Delete the entire object from the tools array
# Update sitemap
# Open: ./app/sitemap.ts
# Find and delete the json-schema-generator entry (around line 104)Option B: Hide with noindex (If you plan to build it)
// Edit: ./app/tools/json-schema-generator/page.tsx
// Change metadata to:
export const metadata: Metadata = {
title: 'JSON Schema Generator - Coming Soon',
robots: {
index: false, // β Add this
follow: false, // β Add this
},
};
// Also remove from sitemap.tsWhy: "Coming Soon" pages are thin content / doorway pages
Current: 17 languages = 440 posts (TOO MANY)
Target: 3-5 languages maximum
# Option A: English ONLY (Safest for AdSense)
Get-ChildItem ./lib/blog/posts/* -Directory |
Where-Object { $_.Name -ne 'en' } |
Remove-Item -Recurse -Force
# Option B: English + Spanish + Chinese (Recommended)
$keepLangs = @('en', 'es', 'zh')
Get-ChildItem ./lib/blog/posts/* -Directory |
Where-Object { $keepLangs -notcontains $_.Name } |
Remove-Item -Recurse -Force
# Verify
Get-ChildItem ./lib/blog/posts/ -Directory
# Should only see: en, es, zh (or just en)Then update language imports:
// Open: ./app/blogs/other/page.tsx (if it exists after deletions)
// Remove imports for deleted languages
// Update the allOtherPosts array to only include remaining languagesWhy: 17 language variants looks like scaled/programmatic content generation
# Count remaining posts
Get-ChildItem -Path ./lib/blog/posts/en -Filter "*.ts" | Measure-Object
# Review each post title for:
# β
Relevant to JSON (keep)
# β Off-topic (delete)
# β Too short < 800 words (expand or delete)
# β Duplicate content (consolidate)Delete any posts that are:
- Off-topic (not about JSON, APIs, web development, or data)
- Too thin (< 500 words with no substance)
- Duplicate (same info as another post)
Create: /app/editorial-guidelines/page.tsx
import type { Metadata } from 'next';
import Link from 'next/link';
export const metadata: Metadata = {
title: 'Editorial Guidelines - BigJSON.online',
description: 'Our commitment to quality content: editorial process, standards, and transparency.',
};
export default function EditorialGuidelinesPage() {
return (
<div className="min-h-screen bg-gray-950 text-gray-100">
<header className="border-b border-gray-800 bg-gray-900/50">
<div className="container mx-auto px-4 py-8 max-w-4xl">
<Link href="/" className="text-sm text-purple-400 hover:text-purple-300 mb-4 inline-block">
β Back to Home
</Link>
<h1 className="text-4xl font-bold mb-4">Editorial Guidelines & Content Standards</h1>
</div>
</header>
<main className="container mx-auto px-4 py-12 max-w-4xl">
<section className="mb-12">
<h2 className="text-2xl font-bold mb-4">Our Commitment to Quality</h2>
<p className="text-gray-300 mb-4">
At BigJSON.online, every piece of content is created with care by developers for developers.
</p>
<h3 className="text-xl font-semibold mb-3">Content Creation Process</h3>
<ol className="list-decimal pl-6 space-y-2 text-gray-300">
<li><strong>Research:</strong> Identify developer pain points through Stack Overflow, GitHub issues, and user feedback</li>
<li><strong>Outline:</strong> Structure articles with clear hierarchy</li>
<li><strong>Writing:</strong> All content written by developers with real-world JSON experience</li>
<li><strong>Review:</strong> Technical accuracy check, grammar review, code testing</li>
<li><strong>Translation (if applicable):</strong> Human translators (native speakers), culturally adapted</li>
</ol>
<h3 className="text-xl font-semibold mb-3 mt-6">What We DON'T Do</h3>
<ul className="list-none space-y-2 text-gray-300">
<li>β We do NOT use AI for bulk content generation</li>
<li>β We do NOT auto-translate without human review</li>
<li>β We do NOT scrape or rewrite content from other sites</li>
<li>β We do NOT create content solely for SEO ranking</li>
</ul>
<h3 className="text-xl font-semibold mb-3 mt-6">Editorial Standards</h3>
<ul className="list-none space-y-2 text-gray-300">
<li>β
Minimum 800 words for tutorials</li>
<li>β
Real code examples (tested and working)</li>
<li>β
Links to authoritative sources (MDN, ECMA)</li>
<li>β
Regular content reviews and updates</li>
</ul>
</section>
</main>
</div>
);
}Then link from:
/app/about/page.tsxβ Add "Read our Editorial Guidelines"- Footer β Add "Editorial Standards"
Edit: /app/about/page.tsx
Add sections:
{/* Team Information */}
<section className="mb-12">
<h2 className="text-3xl font-bold mb-6">Our Team</h2>
<p className="text-gray-300 mb-4">
BigJSON.online is built and maintained by a team of experienced developers:
</p>
<div className="grid md:grid-cols-2 gap-6">
<div className="bg-gray-900 border border-gray-800 rounded-lg p-6">
<h3 className="text-xl font-semibold text-purple-400 mb-2">John Smith</h3>
<p className="text-sm text-gray-400 mb-3">Lead Developer</p>
<p className="text-gray-400 text-sm">
Software engineer with 8 years of experience in API development and web technologies.
Specializes in JavaScript, React, and JSON data processing.
</p>
</div>
<div className="bg-gray-900 border border-gray-800 rounded-lg p-6">
<h3 className="text-xl font-semibold text-purple-400 mb-2">Sarah Johnson</h3>
<p className="text-sm text-gray-400 mb-3">Technical Writer</p>
<p className="text-gray-400 text-sm">
Technical documentation specialist focused on developer education.
Creates clear, accurate tutorials for web development tools.
</p>
</div>
</div>
</section>
{/* Company Information */}
<section className="mb-12">
<h2 className="text-3xl font-bold mb-6">About Our Company</h2>
<div className="bg-gray-900 border border-gray-800 rounded-lg p-6">
<ul className="space-y-3 text-gray-300">
<li><strong>Founded:</strong> 2024</li>
<li><strong>Location:</strong> [Your City, Country]</li>
<li><strong>Team Size:</strong> 3 developers + technical writers</li>
<li><strong>Mission:</strong> Provide free, privacy-first developer tools</li>
</ul>
</div>
</section>Replace: Generic "Big JSON Team" with real names (or professional pseudonyms with credentials)
Edit: /app/contact/page.tsx
Add sidebar after the form:
{/* Contact Information Sidebar */}
<div>
<h2 className="text-2xl font-bold mb-6 text-gray-200">Contact Information</h2>
<div className="space-y-4">
<div className="bg-gray-900 border border-gray-800 rounded-lg p-4">
<h3 className="font-semibold text-gray-300 mb-2">π§ Email</h3>
<p className="text-sm text-gray-400">
General: <a href="mailto:support@bigjson.online" className="text-purple-400">support@bigjson.online</a>
</p>
<p className="text-sm text-gray-400">
Privacy: <a href="mailto:privacy@bigjson.online" className="text-purple-400">privacy@bigjson.online</a>
</p>
</div>
<div className="bg-gray-900 border border-gray-800 rounded-lg p-4">
<h3 className="font-semibold text-gray-300 mb-2">π Location</h3>
<p className="text-sm text-gray-400">[Your City, Country]</p>
</div>
<div className="bg-gray-900 border border-gray-800 rounded-lg p-4">
<h3 className="font-semibold text-gray-300 mb-2">β° Response Time</h3>
<p className="text-sm text-gray-400">Usually within 24-48 hours</p>
</div>
</div>
</div>For EACH tool page, add these sections BEFORE the tool:
Example for /app/tools/json-formatter/page.tsx:
{/* Add BEFORE the tool interface */}
{/* How to Use Section */}
<section className="mb-8 bg-white rounded-lg border border-gray-200 p-8">
<h2 className="text-2xl font-bold text-gray-900 mb-4">How to Use the JSON Formatter</h2>
<ol className="list-decimal pl-6 space-y-3 text-gray-700">
<li>
<strong>Paste JSON:</strong> Copy your JSON data (from an API response, file, etc.)
and paste it into the input box.
</li>
<li>
<strong>Choose Indent Size:</strong> Select 2, 4, or 8 spaces for indentation.
Two spaces is standard for JavaScript projects.
</li>
<li>
<strong>Click "Format JSON":</strong> The tool will automatically beautify your JSON
with proper indentation and line breaks.
</li>
<li>
<strong>Copy or Download:</strong> Use the Copy button or Download button to save
the formatted result.
</li>
</ol>
</section>
{/* Common Use Cases */}
<section className="mb-8 bg-gray-50 rounded-lg border border-gray-200 p-8">
<h2 className="text-2xl font-bold text-gray-900 mb-4">Common Use Cases</h2>
<div className="grid md:grid-cols-2 gap-6">
<div>
<h3 className="font-semibold text-gray-900 mb-2">π§ API Response Debugging</h3>
<p className="text-sm text-gray-700">
When you get minified JSON from an API, use this formatter to make it
readable for debugging errors or understanding the structure.
</p>
</div>
<div>
<h3 className="font-semibold text-gray-900 mb-2">π Config File Creation</h3>
<p className="text-sm text-gray-700">
Format JSON configuration files (package.json, tsconfig.json) to ensure
proper indentation and readability.
</p>
</div>
<div>
<h3 className="font-semibold text-gray-900 mb-2">π Documentation</h3>
<p className="text-sm text-gray-700">
When including JSON examples in documentation, use the formatter to ensure
consistent, professional-looking output.
</p>
</div>
<div>
<h3 className="font-semibold text-gray-900 mb-2">π Learning & Teaching</h3>
<p className="text-sm text-gray-700">
Students and instructors can use this to understand JSON structure and
learn proper formatting conventions.
</p>
</div>
</div>
</section>
{/* Troubleshooting */}
<section className="mb-8 bg-white rounded-lg border border-gray-200 p-8">
<h2 className="text-2xl font-bold text-gray-900 mb-4">Troubleshooting Common Issues</h2>
<div className="space-y-4">
<div>
<h3 className="font-semibold text-red-600 mb-1">Error: "Unexpected token" or "Invalid JSON"</h3>
<p className="text-sm text-gray-700 mb-2">
This means your JSON has a syntax error. Common causes:
</p>
<ul className="list-disc pl-6 text-sm text-gray-700 space-y-1">
<li>Trailing commas (not allowed in JSON)</li>
<li>Single quotes instead of double quotes</li>
<li>Missing closing bracket or brace</li>
<li>Unquoted property names</li>
</ul>
<p className="text-sm text-gray-600 mt-2">
Try using our <Link href="/tools/json-validator" className="text-blue-600 underline">JSON Validator</Link>
to identify the exact location of the error.
</p>
</div>
<div>
<h3 className="font-semibold text-gray-900 mb-1">Large Files Taking Too Long</h3>
<p className="text-sm text-gray-700">
For files over 10MB, formatting may take a few seconds. This is normal as all
processing happens in your browser for privacy. Very large files (>100MB) work
best in the main JSON Viewer tool.
</p>
</div>
</div>
</section>Do this for:
/app/tools/json-formatter/page.tsxβ 800 more words/app/tools/json-validator/page.tsxβ 700 more words/app/tools/json-minifier/page.tsxβ 600 more words/app/tools/json-to-csv/page.tsxβ 700 more words
Find and replace in blog posts:
// OLD:
author: "Big JSON Team"
// NEW (choose real names or professional pseudonyms):
author: "John Smith"
// or
author: "Sarah Johnson"Add expertise to AuthorBio component:
// Edit: components/blog/AuthorBio.tsx
// Change default bio from generic to specific:
const getAuthorInfo = (name: string) => {
const authors = {
'John Smith': {
role: 'Lead Developer',
bio: 'Software engineer with 8 years of experience in API development. Specializes in JavaScript, TypeScript, and JSON data processing.',
},
'Sarah Johnson': {
role: 'Technical Writer',
bio: 'Technical writer focused on developer documentation. Creates clear tutorials for web technologies and data formats.',
},
};
return authors[name] || { role: 'Technical Writer', bio: defaultBio };
};Ensure footer on ALL pages includes:
<footer className="bg-gray-900 border-t border-gray-800 mt-auto">
<div className="container mx-auto px-4 py-8">
<div className="grid md:grid-cols-4 gap-8">
{/* Company */}
<div>
<h3 className="font-semibold text-gray-200 mb-4">Company</h3>
<ul className="space-y-2 text-sm text-gray-400">
<li><Link href="/about" className="hover:text-purple-400">About Us</Link></li>
<li><Link href="/team" className="hover:text-purple-400">Our Team</Link></li>
<li><Link href="/editorial-guidelines" className="hover:text-purple-400">Editorial Standards</Link></li>
<li><Link href="/contact" className="hover:text-purple-400">Contact</Link></li>
</ul>
</div>
{/* Legal */}
<div>
<h3 className="font-semibold text-gray-200 mb-4">Legal</h3>
<ul className="space-y-2 text-sm text-gray-400">
<li><Link href="/privacy" className="hover:text-purple-400">Privacy Policy</Link></li>
<li><Link href="/cookie-policy" className="hover:text-purple-400">Cookie Policy</Link></li>
<li><Link href="/terms" className="hover:text-purple-400">Terms of Service</Link></li>
<li><Link href="/disclaimer" className="hover:text-purple-400">Disclaimer</Link></li>
</ul>
</div>
{/* Tools */}
<div>
<h3 className="font-semibold text-gray-200 mb-4">Tools</h3>
<ul className="space-y-2 text-sm text-gray-400">
<li><Link href="/" className="hover:text-purple-400">JSON Viewer</Link></li>
<li><Link href="/tools/json-formatter" className="hover:text-purple-400">JSON Formatter</Link></li>
<li><Link href="/tools/json-validator" className="hover:text-purple-400">JSON Validator</Link></li>
<li><Link href="/compare" className="hover:text-purple-400">JSON Diff</Link></li>
</ul>
</div>
{/* Resources */}
<div>
<h3 className="font-semibold text-gray-200 mb-4">Resources</h3>
<ul className="space-y-2 text-sm text-gray-400">
<li><Link href="/resources" className="hover:text-purple-400">Learning Resources</Link></li>
<li><Link href="/resources/cheatsheet" className="hover:text-purple-400">JSON Cheat Sheet</Link></li>
</ul>
</div>
</div>
<div className="border-t border-gray-800 mt-8 pt-8 text-center text-sm text-gray-500">
<p>Β© 2026 BigJSON.online. All rights reserved.</p>
</div>
</div>
</footer>Before submitting to Google AdSense, verify:
- All off-topic content deleted (Valentine's Day, etc.)
- No placeholder/coming soon pages
- Languages reduced to 3-5 maximum (or English only)
- Each tool page has 1000+ words of content
- Each blog post has 800+ words
- No duplicate content
- Cookie Policy page exists and is linked
- Cookie consent banner appears on first visit
- Privacy Policy includes Google partner data disclosure
- Terms, Disclaimer, About, Contact pages complete
- Editorial guidelines page created
- Real author names (not "Big JSON Team")
- Team information in About page
- Contact methods visible (email, location)
- Content creation process explained
- Sitemap includes all pages
- No broken links
- Mobile-responsive
- PageSpeed > 85
- Cookie consent working correctly
- Analytics loads only after consent
- All tools functional
- Clear navigation
- Footer on all pages with legal links
- No intrusive ads (before approval)
- Fast loading times
Only after ALL above tasks are complete:
- Go to https://www.google.com/adsense
- Sign in with Google account
- Click "Get Started"
- Enter: https://www.bigjson.online
- Submit application
Expected Timeline:
- 1-2 days: Initial automated check
- 7-14 days: Manual review
- Up to 4 weeks: Final decision
Possible Outcomes:
- β Approved β Integrate AdSense code
β οΈ "Needs fixing" β Address feedback and resubmit- β Rejected β Wait 30 days, fix issues, reapply
Review full audit: ADSENSE_PRODUCTION_AUDIT_REPORT.md
Common Questions:
- How much content is enough? β 1000+ words per page
- How many languages? β 1-5 maximum (quality over quantity)
- Can I use AI tools? β Only with extensive human review and editing
- How long to get approved? β 1-4 weeks typically
Last Updated: March 8, 2026
Status: Critical fixes completed, content cleanup pending