Skip to content

Commit 1806cab

Browse files
committed
fix: SEO
Fix some SEO violations and link from footer
1 parent 9e9ac04 commit 1806cab

File tree

2 files changed

+75
-11
lines changed
  • src

2 files changed

+75
-11
lines changed

src/chakra-starter/marketing-ui/footer/index.tsx

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,41 @@ export const Footer = () => {
7171
<Link href={"#"}>Pricing</Link>
7272
<Link href={"#"}>Releases</Link>
7373
</Stack> */}
74-
<Stack align={"flex-start"}></Stack>
74+
<Stack align={"flex-start"}>
75+
<ListHeader>Office Utilization Reports</ListHeader>
76+
<Link asChild>
77+
<NextLink href={"/office-utilization/new-york"}>
78+
New York
79+
</NextLink>
80+
</Link>
81+
<Link asChild>
82+
<NextLink href={"/office-utilization/london"}>London</NextLink>
83+
</Link>
84+
<Link asChild>
85+
<NextLink href={"/office-utilization/tokyo"}>Tokyo</NextLink>
86+
</Link>
87+
<Link asChild>
88+
<NextLink href={"/office-utilization/shanghai"}>
89+
Shanghai
90+
</NextLink>
91+
</Link>
92+
<Link asChild>
93+
<NextLink href={"/office-utilization/singapore"}>
94+
Singapore
95+
</NextLink>
96+
</Link>
97+
<Link asChild>
98+
<NextLink href={"/office-utilization/san-francisco"}>
99+
San Francisco
100+
</NextLink>
101+
</Link>
102+
<Link asChild>
103+
<NextLink href={"/office-utilization/paris"}>Paris</NextLink>
104+
</Link>
105+
<Link asChild>
106+
<NextLink href={"/office-utilization/beijing"}>Beijing</NextLink>
107+
</Link>
108+
</Stack>
75109
{/* <Stack align={"flex-start"}>
76110
<ListHeader>Company</ListHeader>
77111
<Text>Coming soon</Text>

src/pages/office-utilization/[location]/index.tsx

Lines changed: 40 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
Grid,
99
Heading,
1010
Icon,
11+
Link,
1112
List,
1213
Stack,
1314
Text,
@@ -72,7 +73,8 @@ const OfficeUtilizationPage = (
7273
);
7374

7475
const t = useTranslations("OfficeUtilization");
75-
const { locationData, comparisonCities } = props;
76+
const { locationData, comparisonCities: comparisonCitiesFromProps } = props;
77+
const comparisonCities = comparisonCitiesFromProps as LocationData[];
7678
let [sortedBlogArticles] = createShuffle([
7779
sortedBlogArticlesButNotShuffled,
7880
locationData.city,
@@ -85,12 +87,10 @@ const OfficeUtilizationPage = (
8587
],
8688
});
8789

88-
const comparisonCitiesData = (comparisonCities as LocationData[]).map(
89-
(city) => ({
90-
allocation: parseInt(city.attendance_high_percentage),
91-
name: city.city,
92-
}),
93-
);
90+
const comparisonCitiesData = comparisonCities.map((city) => ({
91+
allocation: parseInt(city.attendance_high_percentage),
92+
name: city.city,
93+
}));
9494

9595
const mainCityData = {
9696
allocation: parseInt(locationData.attendance_high_percentage),
@@ -145,14 +145,18 @@ const OfficeUtilizationPage = (
145145
Util_Peak_High: locationData.util_peak_high_percentage,
146146
});
147147

148+
const kebabCasedLocation = kebabCase(locationData.city.toLowerCase());
149+
150+
const fullUrl = `${url}/office-utilization/${kebabCasedLocation}`;
151+
148152
return (
149153
<>
150154
<NextSeo
151155
title={title}
152156
description={description}
153-
canonical={`${url}/office-utilization/${locationData.city.toLowerCase()}`}
157+
canonical={fullUrl}
154158
openGraph={{
155-
url,
159+
url: fullUrl,
156160
type: "website",
157161
title: title,
158162
description,
@@ -182,7 +186,7 @@ const OfficeUtilizationPage = (
182186
>
183187
<Container maxW="3xl" paddingTop={4} colorPalette={"orange"}>
184188
<Stack direction="row" justify="space-between" align="center">
185-
<Heading size="3xl" color={"orange.1000"} marginTop={4}>
189+
<Heading size="3xl" color={"orange.1000"} marginTop={4} as={"h1"}>
186190
Office Utilization — {City} • 2025
187191
</Heading>
188192
<Box>
@@ -418,6 +422,32 @@ const OfficeUtilizationPage = (
418422
</Container>
419423
</Box>
420424

425+
<Box marginTop={6}>
426+
<Container maxW="4xl">
427+
<Heading as={"h2"} fontWeight={500}>
428+
Related Office Utilization Pages
429+
</Heading>
430+
<Stack direction="row" gap={2}>
431+
{comparisonCities.map((city, index) => (
432+
<>
433+
<Box key={city.city}>
434+
<Link colorPalette="orange" asChild>
435+
<NextLink
436+
href={`/office-utilization/${kebabCase(city.city.toLowerCase())}`}
437+
>
438+
<Text textWrap={"nowrap"}>{city.city}</Text>
439+
</NextLink>
440+
</Link>
441+
</Box>
442+
{index < comparisonCities.length - 1 && (
443+
<Box borderWidth={0}>{"•"}</Box>
444+
)}
445+
</>
446+
))}
447+
</Stack>
448+
</Container>
449+
</Box>
450+
421451
<Container maxW="5xl" py={16}>
422452
{/* CTA */}
423453
<CtaActionContainer

0 commit comments

Comments
 (0)