General SEO tips
- Bounce rate and if they click on multiple links are very important
- Put most important content in article tags and header priority (h1 more important than h2)
- Make sure to use alt tags when needed
Important Header You can add meta tags to your header to control how your site looks when shared on platforms
- if you want your site to be shared on social look up their meta tags ie. facebook Insta and twitter Use twitter card validator
<meta property="og:site_name" content="This is site name"> <meta property="og:url" content="theURL"> <meta property="og:title" content="This is title"> <meta property="og:image" content="theImage src or https"> <meta property="og:description" content="This describes us">
- Make sure your title accurately describes why someone might click on your site
- Use schema.org to add meta attributes to all different html elements
- Get your page to load fast
- Use outbound links to other good sites that are related to your content
Making a dynamic sitemap with nextJS
Credit: Leigh Halliday's video
- Install next-sitemap
- Add "postbuild" : "next-sitemap" to you build scripts
- add next-sitemap.config.js file to root of project
const siteUrl = "https://wrestlingtournaments.com";
module.exports = {
siteUrl,
generateRobotsTxt: true,
robotsTxtOptions: {
additionalSitemaps: [
`${siteUrl}/server-sitemap.xml`,
],
},
}
- Add your sitmaps to git ignore this is because they will be generated at build
public/robots.txt
public/sitemap.xml
public/sitemap-0.xml
- If you need to generate dynamic Pages make a folder called server-sitemap.xml in it index.js or index.jsx file
export default function SiteMap() {
}
import { getServerSideSitemap } from "next-sitemap";
import { API_URL } from '@/config/index'
// http://localhost:3000/events/grappling-industries-connecticut
export const getServerSideProps = async (ctx) => {
const res = await fetch(`${API_URL}/api/events?sort=date&pagination[pageSize]=1000&populate=*`)
const datas = await res.json();
// destructure data into an array of objects
const { data } = datas;
const feilds = data.map(event => (
{
loc: `https://www.wrestlingtournaments.com/events/${event.attributes.slug}`,
lastmod: new Date().toISOString(),
}
)
);
return getServerSideSitemap(ctx, feilds);
}
This generates your URL names