alt texts updated

This commit is contained in:
Selvi 2026-03-07 18:23:21 +05:30
parent df31459888
commit b0f2cf4090
48 changed files with 339 additions and 190 deletions

View File

@ -1047,6 +1047,13 @@ only screen and (min-width: 576px) and (max-width: 767px) {
padding-top: 60px;
padding-bottom: 60px;
}
.service-one-home, .faq-page-section, .faq-two,
.home-contact-one, .history-two, .about-three,
.pf-section, .work-process-container-wrapper.style2,
.fo-section, .about-two, .why-choose-two__content {
padding: 60px 0;
}
}
.section-space-top {
@ -1067,7 +1074,7 @@ only screen and (min-width: 576px) and (max-width: 767px) {
@media (max-width: 767px) {
.section-space-top {
padding-top: 70px;
padding-top: 60px;
}
}
@ -1088,8 +1095,8 @@ only screen and (min-width: 576px) and (max-width: 767px) {
}
@media (max-width: 767px) {
.section-space-bottom {
padding-bottom: 70px;
.section-space-bottom, .contact-one {
padding-bottom: 60px;
}
}
@ -2744,6 +2751,11 @@ only screen and (min-width: 576px) and (max-width: 767px) {
gap: 30px;
}
@media (max-width: 425px) {
.footer-bottom .right-area {
gap: 0px;
}
}
ul.footer-contact-info-widget h6 {
color: #fff;
@ -2793,6 +2805,7 @@ ul.footer-contact-info-widget .icon {
.footer-bottom {
flex-direction: column;
gap: 20px;
text-align: center;
}
}
@ -4368,7 +4381,7 @@ p.banner-text {
/* BRAND CSS START
/*----------------------------------------*/
@media screen and (max-width: 400px) {
@media screen and (max-width: 425px) {
.brand-section {
text-align: center;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

File diff suppressed because one or more lines are too long

View File

@ -37,24 +37,24 @@ const formatUrl = (url) => {
const staticLinks = [
{ url: '/', changefreq: 'daily', priority: 1.0 },
{ url: '/services-digital-solutions/', changefreq: 'daily', priority: 0.7 },
{ url: '/about/', changefreq: 'weekly', priority: 0.7 },
{ url: '/about-us/', changefreq: 'weekly', priority: 0.7 },
{ url: '/careers/', changefreq: 'weekly', priority: 0.7 },
{ url: '/portfolio/', changefreq: 'weekly', priority: 0.7 },
{ url: '/blog/', changefreq: 'weekly', priority: 0.7 },
{ url: '/contact/', changefreq: 'monthly', priority: 0.5 },
{ url: '/faq/', changefreq: 'monthly', priority: 0.5 },
{ url: '/service/website-development-company/', changefreq: 'weekly', priority: 0.6 },
{ url: '/service/mobile-application-development/', changefreq: 'weekly', priority: 0.6 },
{ url: '/service/graphic-designing-company/', changefreq: 'weekly', priority: 0.6 },
{ url: '/service/ui-ux-designing/', changefreq: 'weekly', priority: 0.6 },
{ url: '/service/search-engine-optimization-seo-content-writing/', changefreq: 'weekly', priority: 0.6 },
{ url: '/service/digital-marketing-agency-in-canada/', changefreq: 'weekly', priority: 0.6 },
{ url: '/service/app-development-waterloo/', changefreq: 'weekly', priority: 0.6 },
{ url: '/service/kitchener-waterloo-website-design-services/', changefreq: 'weekly', priority: 0.6 },
{ url: '/service/professional-website-designers-in-waterloo/', changefreq: 'weekly', priority: 0.6 },
{ url: '/service/waterloo-seo-services/', changefreq: 'weekly', priority: 0.6 },
{ url: '/service/web-design-toronto-custom-website-creation-by-metatroncube-software-solutions/', changefreq: 'weekly', priority: 0.6 },
{ url: '/service/web-page-design-in-waterloo/', changefreq: 'weekly', priority: 0.6 },
{ url: '/services-digital-solutions/website-development-company/', changefreq: 'weekly', priority: 0.6 },
{ url: '/services-digital-solutions/mobile-application-development/', changefreq: 'weekly', priority: 0.6 },
{ url: '/services-digital-solutions/graphic-designing-company/', changefreq: 'weekly', priority: 0.6 },
{ url: '/services-digital-solutions/ui-ux-designing/', changefreq: 'weekly', priority: 0.6 },
{ url: '/services-digital-solutions/search-engine-optimization-seo-content-writing/', changefreq: 'weekly', priority: 0.6 },
{ url: '/services-digital-solutions/digital-marketing-agency-in-canada/', changefreq: 'weekly', priority: 0.6 },
{ url: '/services-digital-solutions/app-development-waterloo/', changefreq: 'weekly', priority: 0.6 },
{ url: '/services-digital-solutions/kitchener-waterloo-website-design-services/', changefreq: 'weekly', priority: 0.6 },
{ url: '/services-digital-solutions/professional-website-designers-in-waterloo/', changefreq: 'weekly', priority: 0.6 },
{ url: '/services-digital-solutions/waterloo-seo-services/', changefreq: 'weekly', priority: 0.6 },
{ url: '/services-digital-solutions/web-design-toronto-custom-website-creation-by-metatroncube-software-solutions/', changefreq: 'weekly', priority: 0.6 },
{ url: '/services-digital-solutions/web-page-design-in-waterloo/', changefreq: 'weekly', priority: 0.6 },
];
// ✅ Dynamic blog posts
@ -111,12 +111,14 @@ const blogPosts = [
{ slug: 'modern-business-website-features-waterloo' },
{ slug: 'why-social-media-management-important-business' },
{ slug: 'why-you-need-digital-marketing-agency-business-growth' },
{ slug: 'how-much-does-it-cost-to-hire-a-small-business-digital-marketing-agency-in-toronto' },
{ slug: 'digital-marketing-agency-pricing-models-explained' },
];
// Convert blog slugs to sitemap entries
const blogLinks = blogPosts.map(post => ({
url: `/${post.slug}`,
url: `/blog/${post.slug}`,
changefreq: 'weekly',
priority: 0.6
}));

View File

@ -1,43 +1 @@
Page URL,Image Src,Alt Text,Issue Type
"http://localhost:3000/","http://localhost:3000/assets/images/home/2/left-img.webp","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/assets/images/home/3/right-img.webp","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/assets/img/add/icon-1.webp","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/assets/img/add/icon-2.webp","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/assets/img/add/icon-3.webp","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/assets/img/add/icon-4.webp","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/assets/img/add/icon-1.webp","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/assets/img/add/icon-2.webp","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/assets/img/add/icon-3.webp","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/assets/img/add/icon-4.webp","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/assets/img/add/icon-1.webp","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/assets/img/add/icon-2.webp","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/assets/img/add/icon-3.webp","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/assets/img/add/icon-4.webp","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/assets/img/add/icon-1.webp","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/assets/img/add/icon-2.webp","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/assets/img/add/icon-3.webp","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/assets/img/add/icon-4.webp","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/assets/images/home/4/lets-discuss.webp","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/assets/images/about/6/left.webp","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/assets/img/logo.webp","(empty)","Empty Alt"
"http://localhost:3000/","","img","Duplicate Alt (3 times)"
"http://localhost:3000/","","pelocis","Duplicate Alt (3 times)"
"http://localhost:3000/","","shape","Duplicate Alt (6 times)"
"http://localhost:3000/","","icon","Duplicate Alt (18 times)"
"http://localhost:3000/","","Digital Marketing","Duplicate Alt (2 times)"
"http://localhost:3000/","","Website Development","Duplicate Alt (2 times)"
"http://localhost:3000/","","sureshkumar natarajan","Duplicate Alt (2 times)"
"http://localhost:3000/","","VINOD G","Duplicate Alt (2 times)"
"http://localhost:3000/","","Dine360 Ads","Duplicate Alt (2 times)"
"http://localhost:3000/","","Arun kumar","Duplicate Alt (2 times)"
"http://localhost:3000/services-digital-solutions/","http://localhost:3000/assets/images/services/choose/grid.webp","(empty)","Empty Alt"
"http://localhost:3000/services-digital-solutions/","http://localhost:3000/assets/images/services/service/element-small.webp","(empty)","Empty Alt"
"http://localhost:3000/services-digital-solutions/","http://localhost:3000/assets/images/services/deliver/element.webp","(empty)","Empty Alt"
"http://localhost:3000/services-digital-solutions/","http://localhost:3000/assets/images/services/journey/element-2.webp","(empty)","Empty Alt"
"http://localhost:3000/services-digital-solutions/","http://localhost:3000/assets/img/logo.webp","(empty)","Empty Alt"
"http://localhost:3000/services-digital-solutions/","","Comprehensive digital development","Duplicate Alt (3 times)"
"http://localhost:3000/services-digital-solutions/","","Strategic online growth solutions","Duplicate Alt (3 times)"
"http://localhost:3000/services-digital-solutions/","","Creative design and branding excellence","Duplicate Alt (3 times)"
"http://localhost:3000/services-digital-solutions/","","icon","Duplicate Alt (9 times)"
"http://localhost:3000/services-digital-solutions/","","img","Duplicate Alt (3 times)"
"http://localhost:3000/services-digital-solutions/","","shape","Duplicate Alt (3 times)"

1 Page URL Image Src Alt Text Issue Type
http://localhost:3000/ http://localhost:3000/assets/images/home/2/left-img.webp (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/assets/images/home/3/right-img.webp (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/assets/img/add/icon-1.webp (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/assets/img/add/icon-2.webp (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/assets/img/add/icon-3.webp (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/assets/img/add/icon-4.webp (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/assets/img/add/icon-1.webp (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/assets/img/add/icon-2.webp (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/assets/img/add/icon-3.webp (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/assets/img/add/icon-4.webp (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/assets/img/add/icon-1.webp (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/assets/img/add/icon-2.webp (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/assets/img/add/icon-3.webp (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/assets/img/add/icon-4.webp (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/assets/img/add/icon-1.webp (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/assets/img/add/icon-2.webp (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/assets/img/add/icon-3.webp (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/assets/img/add/icon-4.webp (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/assets/images/home/4/lets-discuss.webp (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/assets/images/about/6/left.webp (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/assets/img/logo.webp (empty) Empty Alt
http://localhost:3000/ img Duplicate Alt (3 times)
http://localhost:3000/ pelocis Duplicate Alt (3 times)
http://localhost:3000/ shape Duplicate Alt (6 times)
http://localhost:3000/ icon Duplicate Alt (18 times)
http://localhost:3000/ Digital Marketing Duplicate Alt (2 times)
http://localhost:3000/ Website Development Duplicate Alt (2 times)
http://localhost:3000/ sureshkumar natarajan Duplicate Alt (2 times)
http://localhost:3000/ VINOD G Duplicate Alt (2 times)
http://localhost:3000/ Dine360 Ads Duplicate Alt (2 times)
http://localhost:3000/ Arun kumar Duplicate Alt (2 times)
http://localhost:3000/services-digital-solutions/ http://localhost:3000/assets/images/services/choose/grid.webp (empty) Empty Alt
http://localhost:3000/services-digital-solutions/ http://localhost:3000/assets/images/services/service/element-small.webp (empty) Empty Alt
http://localhost:3000/services-digital-solutions/ http://localhost:3000/assets/images/services/deliver/element.webp (empty) Empty Alt
http://localhost:3000/services-digital-solutions/ http://localhost:3000/assets/images/services/journey/element-2.webp (empty) Empty Alt
http://localhost:3000/services-digital-solutions/ http://localhost:3000/assets/img/logo.webp (empty) Empty Alt
http://localhost:3000/services-digital-solutions/ Comprehensive digital development Duplicate Alt (3 times)
http://localhost:3000/services-digital-solutions/ Strategic online growth solutions Duplicate Alt (3 times)
http://localhost:3000/services-digital-solutions/ Creative design and branding excellence Duplicate Alt (3 times)
http://localhost:3000/services-digital-solutions/ icon Duplicate Alt (9 times)
http://localhost:3000/services-digital-solutions/ img Duplicate Alt (3 times)
http://localhost:3000/services-digital-solutions/ shape Duplicate Alt (3 times)

View File

@ -23,7 +23,7 @@ export default function AccessibilityStatement() {
<PageHeader
title="Accessibility Statement"
breadcrumbItems={[{ name: "Accessibility Statement" }]}
bannerLeftImage="/assets/images/innerbanner/left/left-about.webp"
bannerLeftImage="/assets/images/innerbanner/left/accessability.webp"
bannerRightImage="/assets/images/innerbanner/right/right-accessability.webp"
/>
<AccessibilityContent />

View File

@ -2495,7 +2495,7 @@ body {
.contact-one__image {
margin: 0;
margin-bottom: 40px;
top: 68px;
/* top: 68px; */
}
.contact-one__image-two {
@ -7043,7 +7043,7 @@ body {
*/
.counselling-solutions {
position: relative;
padding: 80px 0 120px;
/* padding: 80px 0 80px; */
}
/* .counselling-solutions .sec-title {
@ -7302,7 +7302,7 @@ body {
position: relative;
/* margin-top: -163px; */
z-index: 10;
margin-bottom: 80px;
/* margin-bottom: 80px; */
}
.counter-area-three__list {
@ -10581,9 +10581,9 @@ body {
border-left: none !important;
}
.faq-page-section .col-lg-4 {
/* .faq-page-section .col-lg-4 {
margin-bottom: 30px;
}
} */
.faq-page-section .faq-center-image-wrap {
order: -1;
@ -11990,7 +11990,7 @@ body {
@media (max-width: 425px) {
.sec-title__tagline {
font-size: 12px;
font-size: 12px !important;
}
}
@ -12309,10 +12309,10 @@ body {
.hamburger-btn {
background: rgba(255, 255, 255, 0.1);
border: none;
width: 50px;
height: 50px;
width: 40px;
height: 45px;
border-radius: 12px;
font-size: 20px;
font-size: 18px;
color: #ffffff;
display: flex;
align-items: center;
@ -12666,6 +12666,9 @@ body {
font-size: 12px !important;
padding: 20px 10px !important;
}
.faq-two .section-heading{
font-size: 32px !important;
}
}
/* ============================================================
@ -13185,10 +13188,15 @@ body {
}
.main-menu-metatron ul li a {
padding: 5px 10px;
padding: 5px 5px;
font-size: 13px;
}
header .vl-btn1 {
padding-left: 15px !important;
padding-right: 15px !important;
}
.main-menu-metatron ul li .submenu li a {
font-size: 13px;
}
@ -13196,71 +13204,19 @@ body {
}
/* ============================================================
CUSTOM HEADER BREAKPOINT (1024px)
HEADER CONTAINER CONSTRAINT (1024px - 1920px)
============================================================ */
/* .headerfix {
padding-top: 25px !important;
padding-bottom: 25px !important;
} */
/* Specific padding for web development service header and banner */
.header-metatron-web-dev .headerfix {
padding-top: 40px !important;
padding-bottom: 40px !important;
}
@media (max-width: 1024px) {
/* Hide all nav links and buttons at 1024px site-wide */
header .d-lg-block,
header .d-none.d-lg-block,
.header-nav-col-metatron,
.header-desktop-metatron,
.vl-main-menu,
.vl-hero-btn {
display: none !important;
@media (min-width: 1024px) and (max-width: 1920px) {
.header-metatron-style .container-fluid.headerfix {
max-width: 1320px !important;
margin-right: auto !important;
margin-left: auto !important;
padding-left: 15px !important;
padding-right: 15px !important;
}
/* Show hamburger button at 1024px */
header .d-lg-none,
header .d-block.d-lg-none,
.header-mobile-metatron,
.vl-header-action-item,
.header-hamburger-metatron {
display: block !important;
}
/* Hamburger alignment */
.vl-header-action-item,
.header-hamburger-metatron {
display: flex !important;
justify-content: flex-end !important;
}
/* Force 1024px columns for logo and action */
.vl-header-area .col-lg-3.col-md-6.col-6,
.vl-header-area .col-lg-3.col-md-6.col-9 {
width: 70% !important;
flex: 0 0 70% !important;
}
.vl-header-area .col-lg-3.col-md-6.col-6,
.vl-header-area .col-lg-2.col-md-6.col-3 {
width: 30% !important;
flex: 0 0 30% !important;
}
/* Ensure padding on mobile too */
/* .headerfix {
padding-top: 15px !important;
padding-bottom: 15px !important;
} */
}
@media (min-width: 1025px) {
.header-mobile-metatron,
header .d-lg-none {
display: none !important;
.header-metatron-style .row-bg3 {
margin-left: 0 !important;
margin-right: 0 !important;
}
}

View File

@ -23,7 +23,7 @@ export default function PrivacyPolicy() {
<PageHeader
title="Privacy Policy"
breadcrumbItems={[{ name: "Privacy Policy" }]}
bannerLeftImage="/assets/images/innerbanner/left/left-about.webp"
bannerLeftImage="/assets/images/innerbanner/left/privacy.webp"
bannerRightImage="/assets/images/innerbanner/right/right-privacy-policy.webp"
/>
<PrivacyPolicyContent />

View File

@ -13,7 +13,7 @@ const ResultsSection = () => {
<h6 className="sec-title__tagline">Discover Our Process</h6>
<h3 className="sec-title__title">How We Deliver Exceptional Results</h3>
</div>
<img src="/assets/images/services/deliver/element.webp" alt="" className="sec-title__text-shape" />
<img src="/assets/images/services/deliver/element.webp" alt="How We Deliver Exceptional Results" className="sec-title__text-shape" />
<p>
Delve into Metatroncubes unique approach to delivering exceptional results. Our Discover Our Process section illuminates the meticulous steps we take in transforming your digital vision into tangible success.
</p>

View File

@ -17,12 +17,12 @@ const BlogCard: React.FC<BlogCardProps> = ({ blog }) => {
<ul>
<li>
<a href="#">
<img src="/assets/img/icons/calender1.svg" alt="" /> {blog.date} <span> | </span>
<img src="/assets/img/icons/calender1.svg" alt="date" /> {blog.date} <span> | </span>
</a>
</li>
<li>
<a href="#">
<img src="/assets/img/icons/user1.svg" alt="" /> {blog.authorName}
<img src="/assets/img/icons/user1.svg" alt="admin" /> {blog.authorName}
</a>
</li>
</ul>

View File

@ -60,7 +60,7 @@ const ServiceSection2 = () => {
<h6 className="sec-title__tagline">OUR BEST SERVICE</h6>
<h3 className="sec-title__title">We Run All Kinds Of Services <br /> From Technologies</h3>
</div>
<img src="/assets/images/services/service/element-small.webp" alt="" className="sec-title__text-shape" />
<img src="/assets/images/services/service/element-small.webp" alt="We Run All Kinds Of Services" className="sec-title__text-shape" />
</div>
<div className="row mt-50">

View File

@ -58,7 +58,7 @@ const WorkProcessSection2 = () => {
<div className="container">
<div className="work-process-wrapper style2">
<div className="shape1 d-none d-xxl-block">
<img src="/assets/images/services/journey/element-2.webp" />
<img src="/assets/images/services/journey/element-2.webp" alt="digital transformation journey" />
</div>
{/* <div className="shape2 d-none d-xxl-block">
<img src="/assets/imgs/shapes/shape-10.png" />

View File

@ -26,7 +26,7 @@ const PageHeader: React.FC<PageHeaderProps> = ({ title, breadcrumbItems, bannerL
</div>
</div>
<div className="container">
<h2 className="page-header__title">{title}</h2>
<h1 className="page-header__title">{title}</h1>
<ul className="pelocis-breadcrumb list-unstyled">
<li><Link href="/">Home</Link></li>
{breadcrumbItems && breadcrumbItems.map((item, index) => (

View File

@ -41,10 +41,10 @@ const AboutThree = () => {
<section className="about-three">
<div className="about-three__bg">
<div className="about-three__shape-one">
<img src="/assets/images/careers/2/element-1.webp" alt="pelocis" />
<img src="/assets/images/careers/2/element-1.webp" alt="Team defining innovation strategy at Metatron Cube Solutions." />
</div>
<div className="about-three__shape-two">
<img src="/assets/images/careers/2/element-2.webp" alt="pelocis" />
<img src="/assets/images/careers/2/element-2.webp" alt="element-1" />
</div>
</div>
<div className="container">
@ -111,7 +111,7 @@ const AboutThree = () => {
<div className="col-xl-6 wow fadeInRight animated" data-wow-delay="200ms">
<div className="pelocis-stretch-element-inside-column" style={{ marginLeft: '0px', marginRight: '-375.012px' }}>
<div className="about-three__img">
<img src="/assets/images/careers/2/right-img.webp" alt="pelocis" />
<img src="/assets/images/careers/2/right-img.webp" alt="What we offer" />
</div>
</div>
</div>

View File

@ -44,7 +44,7 @@ const AboutTwo = () => {
<li>
<div className="about-two__list__icon-box">
{/* <img src="/assets/images/services/why/circle.webp" alt="circle" className="about-two__list__circle" /> */}
<img src="/assets/images/services/why/icon-1.webp" alt="icon" className="about-two__list__icon" />
<img src="/assets/images/services/why/icon-1.webp" alt="Latest Technology" className="about-two__list__icon" />
</div>
<div className="about-two__list__content">
<h3 className="about-two__list__title">Latest Technology</h3>
@ -54,7 +54,7 @@ const AboutTwo = () => {
<li>
<div className="about-two__list__icon-box">
{/* <img src="/assets/images/services/why/circle.webp" alt="circle" className="about-two__list__circle" /> */}
<img src="/assets/images/services/why/icon-2.webp" alt="icon" className="about-two__list__icon" />
<img src="/assets/images/services/why/icon-2.webp" alt="Certified Experts" className="about-two__list__icon" />
</div>
<div className="about-two__list__content">
<h4 className="about-two__list__title">Certified Experts</h4>
@ -64,7 +64,7 @@ const AboutTwo = () => {
<li>
<div className="about-two__list__icon-box">
{/* <img src="/assets/images/services/why/circle.webp" alt="circle" className="about-two__list__circle" /> */}
<img src="/assets/images/services/why/icon-3.webp" alt="icon" className="about-two__list__icon" />
<img src="/assets/images/services/why/icon-3.webp" alt="Get Reasonable Price" className="about-two__list__icon" />
</div>
<div className="about-two__list__content">
<h4 className="about-two__list__title">Get Reasonable Price</h4>

View File

@ -3,7 +3,7 @@ import Link from 'next/link';
const CounsellingSolutions: React.FC = () => {
return (
<section className="counselling-solutions">
<section className="counselling-solutions section-space-top">
<div className="container">
<div className="row">
@ -11,12 +11,12 @@ const CounsellingSolutions: React.FC = () => {
<div className="counselling-solutions__image">
<img
src="/assets/images/home/4/back.webp"
alt="pelocis"
alt="Why choose metatroncube solution"
className="counselling-solutions__image__one"
/>
<img
src="/assets/images/home/4/front.webp"
alt="pelocis"
alt="Why choose metatroncube solutions"
className="counselling-solutions__image__two"
/>
{/* <div className="counselling-solutions__image__watch-btn">

View File

@ -81,7 +81,7 @@ const counterItems = [
const CounterAreaThree: React.FC = () => {
return (
<section className="counter-area-three">
<section className="counter-area-three section-space-bottom">
<div className="container">
<ul className="counter-area-three__list">
{counterItems.map((item, index) => (

View File

@ -41,7 +41,7 @@ const FaqFive = () => {
<div className="faq-four__image2">
<img
src="/assets/images/faq/3.webp"
alt="pelocis"
alt="Metatroncube FAQs: web-apps, SEO, & digital marketing"
/>
<div className="faq-four__image2__icon">
<i className="icon-faq">faq</i>

View File

@ -81,7 +81,7 @@ const FaqFour = () => {
<div className="faq-four__image">
<img
src="/assets/images/faq/2.webp"
alt="pelocis"
alt="Metatroncube FAQs: web-apps, SEO, & digital marketing"
/>
<div className="faq-four__image__icon">
<i className="icon-faq">faq</i>

View File

@ -30,12 +30,12 @@ const HistoryTwo = () => {
<div className="col-md-6 d-none d-md-block">
<div className="history-two__images">
<span className="history-two__images__date"></span>
<img src="/assets/images/about/4/1.webp" alt="pelocis" />
<img src="/assets/images/about/4/1.webp" alt="our mission" />
</div>
</div>
<div className="col-md-6 d-none d-md-block">
<div className="history-two__images history-two__images--right">
<img src="/assets/images/about/4/2.webp" alt="pelocis" />
<img src="/assets/images/about/4/2.webp" alt="our-vision" />
{/* <span className="history-two__images__date">2021</span> */}
</div>
</div>
@ -67,7 +67,7 @@ const HistoryTwo = () => {
<div className="col-md-6 d-none d-md-block">
<div className="history-two__images">
<span className="history-two__images__date"></span>
<img src="/assets/images/about/4/3.webp" alt="pelocis" />
<img src="/assets/images/about/4/3.webp" alt="our values" />
</div>
</div>
</div>

View File

@ -138,7 +138,7 @@ const HomeContactOne = () => {
</div>
<img
src="/assets/images/home/7/contact.webp"
alt="pelocis"
alt="Expect a personalized reply within one business day."
className="home-contact__card__shape-two"
/>
</div>

View File

@ -7,7 +7,7 @@ interface WhyChooseTwoProps {
const WhyChooseTwo: React.FC<WhyChooseTwoProps> = ({ reverse = false }) => {
return (
<section className="why-choose-two">
<img src="/assets/images/about/3/element-bottom-left.webp" alt="pelocis" className="why-choose-two__shape-three" />
<img src="/assets/images/about/3/element-bottom-left.webp" alt="Agency that gets excited about element" className="why-choose-two__shape-three" />
<div className="container">
<div className={`row ${reverse ? 'flex-row-reverse' : ''}`}>
<div className="col-xl-6">
@ -28,7 +28,7 @@ const WhyChooseTwo: React.FC<WhyChooseTwoProps> = ({ reverse = false }) => {
<li className="why-choose-two__item">
<div className="why-choose-two__count"></div>
<div className="why-choose-two__icon">
<img src="/assets/images/about/3/icon-1.webp" alt="" />
<img src="/assets/images/about/3/icon-1.webp" alt="Urgent development solutions" />
</div>
<div className="why-choose-two__item__content">
<h3 className="why-choose-two__item__title">Urgent development solutions</h3>
@ -40,7 +40,7 @@ const WhyChooseTwo: React.FC<WhyChooseTwoProps> = ({ reverse = false }) => {
<li className="why-choose-two__item">
<div className="why-choose-two__count"></div>
<div className="why-choose-two__icon">
<img src="/assets/images/about/3/icon-2.webp" alt="" />
<img src="/assets/images/about/3/icon-2.webp" alt="Top quality services with reasonable price" />
</div>
<div className="why-choose-two__item__content">
<h3 className="why-choose-two__item__title">Top quality services with reasonable price</h3>
@ -52,7 +52,7 @@ const WhyChooseTwo: React.FC<WhyChooseTwoProps> = ({ reverse = false }) => {
<li className="why-choose-two__item">
<div className="why-choose-two__count"></div>
<div className="why-choose-two__icon">
<img src="/assets/images/about/3/icon-3.webp" alt="" />
<img src="/assets/images/about/3/icon-3.webp" alt="Professional & experienced team" />
</div>
<div className="why-choose-two__item__content">
<h3 className="why-choose-two__item__title">Professional & experienced team</h3>
@ -68,7 +68,7 @@ const WhyChooseTwo: React.FC<WhyChooseTwoProps> = ({ reverse = false }) => {
<div className="col-xl-6">
<div className="pelocis-stretch-element-inside-column" style={reverse ? { marginLeft: '-227.812px', marginRight: '0px' } : { marginLeft: '0px', marginRight: '-267.812px' }}>
<div className="why-choose-two__shape-one">
<img src="/assets/images/about/3/right-img.webp" alt="pelocis" />
<img src="/assets/images/about/3/right-img.webp" alt="Agency that gets excited about" />
</div>
<div className="why-choose-two__shape-two"></div>
</div>

View File

@ -14,7 +14,7 @@ const AboutSection = () => {
<div className="about-us-image-area p-relative wow fadeInRight" data-wow-delay=".5s">
<div className="border-shape" style={{ backgroundImage: "url(/assets/imgs/shapes/shape-6.png)" }}></div>
<figure className="image-1">
<img src="/assets/images/home/2/left-img.webp" alt="" />
<img src="/assets/images/home/2/left-img.webp" alt="comprehensive digital strategies" />
</figure>
{/* <div className="image-2-area">
<div className="image-2 p-relative">
@ -50,7 +50,7 @@ const AboutSection = () => {
<p className="mb-35 wow fadeInLeft" data-wow-delay=".5s">Partner with Metatroncube Software Solutions and unlock a world of digital possibilities in web & app development, SEO, digital marketing, and graphic design services. Our commitment extends beyond mere product delivery; we focus on enhancing your market presence and driving business success with comprehensive digital strategies. Experience the unique Metatroncube advantage in every aspect of digital transformation.</p>
<div className="icon-box mb-20 wow fadeInLeft" data-wow-delay=".8s">
<div className="icon">
<img src="/assets/images/home/2/icon-1.webp" alt="img" />
<img src="/assets/images/home/2/icon-1.webp" alt="Exceptional Digital Quality" />
</div>
<div className="content">
<h5>Exceptional Digital Quality</h5>
@ -59,7 +59,7 @@ const AboutSection = () => {
</div>
<div className="icon-box mb-20 wow fadeInLeft" data-wow-delay=".9s">
<div className="icon">
<img src="/assets/images/home/2/icon-2.webp" alt="img" />
<img src="/assets/images/home/2/icon-2.webp" alt="Expertise in innovation" />
</div>
<div className="content">
<h5>Expertise in innovation</h5>
@ -68,7 +68,7 @@ const AboutSection = () => {
</div>
<div className="icon-box mb-20 wow fadeInLeft" data-wow-delay=".9s">
<div className="icon">
<img src="/assets/images/home/2/icon-3.webp" alt="img" />
<img src="/assets/images/home/2/icon-3.webp" alt="Comprehensive web solutions" />
</div>
<div className="content">
<h5>Comprehensive web solutions</h5>

View File

@ -60,7 +60,10 @@ const BrandSection = () => {
<Slider {...settings} className="brand-active">
{[1, 2, 3, 4, 1, 2, 3, 4].map((num, i) => (
<div key={i} className="brand-item">
<span><img src={`/assets/img/add/icon-${num}.webp`} alt="" /></span>
<span><img
src={`/assets/img/add/icon-${num}.webp`}
alt={`Brand ${i + 1}`}
/></span>
</div>
))}
</Slider>

View File

@ -20,7 +20,7 @@ const ChooseSection = () => (
</p>
<div className="faq-one__card">
<div className="faq-one__img">
<img src="/assets/images/home/2/small-img.webp" alt="pelocis" />
<img src="/assets/images/home/2/small-img.webp" alt="Located in the Kitchener and Waterloo regions" />
</div>
<div className="faq-one__content">
<ul className="faq-one__list list-unstyled">
@ -34,7 +34,7 @@ const ChooseSection = () => (
</div>
</div>
<div className="col-xxl-6 col-xl-6 col-lg-6 wow fadeInLeft" data-wow-delay="1.2s">
<figure className="image m-img"><img src="/assets/images/home/3/right-img.webp" alt="" /></figure>
<figure className="image m-img"><img src="/assets/images/home/3/right-img.webp" alt="Diverse team collaborating over a laptop in an office setting." /></figure>
</div>
</div>
</div>

View File

@ -1,15 +1,15 @@
import React from "react";
const CtaSection = () => (
<section className="cta-1-section p-relative wow fadeInDown mb-80 mt-80" data-wow-delay=".5s">
<section className="cta-1-section p-relative wow fadeInDown section-space" data-wow-delay=".5s">
<div className="small-container">
<div className="row g-0 box-shadow-1 fix">
<div className="col-xxl-6 col-lg-6 bg-white">
<figure className="image w-img"><img src="/assets/images/home/4/lets-discuss.webp" alt="" /></figure>
<figure className="image w-img"><img src="/assets/images/home/4/lets-discuss.webp" alt="Welcoming young woman smiling, embodying customer-focused service." /></figure>
</div>
<div className="col-xxl-6 col-lg-6">
<div className="content p-relative">
<div className="shape-1" style={{ backgroundImage: "url(/assets/imgs/shapes/shape-12.png)" }}></div>
<div className="shape-1" style={{ backgroundImage: "url(/assets/images/home/right-img.webp)" }}></div>
<div className="icon-box"><i className="fa-solid fa-phone-volume"></i></div>
<h3 style={{ fontSize: "32px" }}>Lets Discuss How to Make your Business Better.</h3>
{/* <h5><a href="tel:2085550112">+208-555-0112</a></h5> */}

View File

@ -73,7 +73,7 @@ const TestimonialsSection = () => {
<div className="row g-0">
<div className="col-xxl-4 col-xl-4 col-lg-12">
<div className="testimonials-video-area p-relative">
<figure className="image w-img"><img src="/assets/images/about/6/left.webp" alt="" /></figure>
<figure className="image w-img"><img src="/assets/images/about/6/left.webp" alt="What they're talking about us" /></figure>
{/* <div className="play-btn">
<div className="video_player_btn">
<a href="https://www.youtube.com/watch?v=eEzD-Y97ges" className="popup-video"><i className="fa-solid fa-play"></i></a>

View File

@ -9,7 +9,7 @@ const About2Section = () => (
<div className="col-xxl-6 col-xl-6 col-lg-6 col-md-12">
<div className="about-2-image-area p-relative wow fadeInLeft" data-wow-delay="500ms">
<figure className="main-image m-img">
<img src="/assets/images/about/1/grid.webp" alt="" />
<img src="/assets/images/about/1/grid.webp" alt="Our story" />
</figure>
{/* <div className="small-image">
<img src="/assets/imgs/about/about-4.jpg" alt="" />

View File

@ -12,7 +12,7 @@ const IconCounterSection = () => {
<div key={i} className="col-xxl-3 col-xl-3 col-lg-6 col-md-6">
<div className="icon-box-counter-area">
<div className="icon-box">
<img src={`/assets/imgs/icon/${item.img}`} alt="img" />
<img src={`/assets/imgs/icon/${item.img}`} alt={item.label} />
</div>
<div className="content">
<h3><span className="counter">{item.count}</span>+</h3>

View File

@ -32,7 +32,7 @@ const ServiceTabSection = () => {
<li key={service.id} className="nav-item" role="presentation">
<a href="javascript:void(0)" className={`nav-link ${i === 0 ? 'active' : ''}`} id={`${tabData[i].id}-tab`} data-bs-toggle="tab" data-bs-target={`#${tabData[i].id}-tab-pane`} role="tab">
<div className="icon-box">
<img src={`/assets/imgs/icon/${tabData[i].icon}`} alt="img" />
<img src={`/assets/imgs/icon/${tabData[i].icon}`} alt={service.description} />
</div>
{service.title}
</a>

View File

@ -22,7 +22,7 @@ const WorkProcessSection = () => (
<div key={i} className="col-xxl-4 col-xl-4 col-lg-4">
<div className="work-process-box text-center">
<div className="icon-box p-relative">
<img src={`/assets/images/services/process/${proc.icon}`} alt="img" />
<img src={`/assets/images/services/process/${proc.icon}`} alt={proc.desc} />
<span>{proc.num}</span>
</div>
<div className="content">

View File

@ -10,7 +10,7 @@ const ChooseSection = () => (
<div className="choose-3-image-area p-relative">
<div className="shape-1" style={{ backgroundImage: "url(/assets/images/services/choose/element-2.webp)" }}></div>
<figure className="image w-img">
<img src="/assets/images/services/choose/grid.webp" alt="" />
<img src="/assets/images/services/choose/grid.webp" alt="Crafting tailored digital solutions for every need" />
</figure>
{/* <div className="image-3-area">
<div className="image-3 p-relative">

View File

@ -59,7 +59,7 @@ const ServiceSection = () => {
<div className="inner text-center">
<div className="content-box">
<div className="icon-box">
<img src={service.icon} alt="img" />
<img src={service.icon} alt={service.title} />
</div>
<h4><a href="#">{service.title}</a></h4>
<p className="mb-25">{service.description}</p>

View File

@ -5647,7 +5647,7 @@ only screen and (min-width: 768px) and (max-width: 991px),
}
.vl-offcanvas-sm-title {
font-size: var(--ztc-font-size-font-s24);
font-size: var(--ztc-font-size-font-s24) !important;
color: var(--ztc-text-text-1);
}

View File

@ -24,7 +24,7 @@ const MobileMenu: React.FC<MobileMenuProps> = ({ isMobileMenuOpen, toggleMobileM
<div className="homepage1-body">
<div className={`vl-offcanvas ${isMobileMenuOpen ? 'vl-offcanvas-open' : ''}`}>
<div className="vl-offcanvas-wrapper">
<div className="vl-offcanvas-header d-flex justify-content-between align-items-center mb-90">
<div className="vl-offcanvas-header d-flex justify-content-between align-items-center">
<div className="vl-offcanvas-logo">
<Link href="#home" onClick={toggleMobileMenu}>
<img src="/assets/img-app/logo.webp" alt="logo" style={{ width: '100%', maxWidth: '250px', height: 'auto' }} />
@ -62,16 +62,16 @@ const MobileMenu: React.FC<MobileMenuProps> = ({ isMobileMenuOpen, toggleMobileM
<div className="space20"></div>
<div className="vl-offcanvas-info">
<h3 className="vl-offcanvas-sm-title">Contact Us</h3>
<h3 className="vl-offcanvas-sm-title mb-2">Contact Us</h3>
<span><a href="tel:+16476797651"><i className="fa-solid fa-phone"></i> +1-647-679-7651</a></span>
<span><a href="mailto:info@metatroncubesolutions.com"><i className="fa-regular fa-envelope"></i> info@metatroncubesolutions.com</a></span>
</div>
<div className="space20"></div>
<div className="vl-offcanvas-social">
<h3 className="vl-offcanvas-sm-title">Follow Us</h3>
<h3 className="vl-offcanvas-sm-title mb-2">Follow Us</h3>
<a href="https://www.facebook.com/metatroncubecanada" target="_blank" rel="noopener noreferrer"><i className="fab fa-facebook-f"></i></a>
<a href="https://x.com/MetatroncubeDA" target="_blank" rel="noopener noreferrer"><i className="fa-brands fa-x-twitter"></i></a>
<a href="https://x.com/MetatroncubeDA" target="_blank" rel="noopener noreferrer"><i className="fa-brands fa-twitter"></i></a>
<a href="https://www.linkedin.com/company/metatroncube-software-solutions/posts/?feedView=all" target="_blank" rel="noopener noreferrer"><i className="fab fa-linkedin-in"></i></a>
<a href="https://www.instagram.com/metatron_digitalagency" target="_blank" rel="noopener noreferrer"><i className="fab fa-instagram"></i></a>
<a href="https://www.youtube.com/@metatron_digitalagency" target="_blank" rel="noopener noreferrer"><i className="fab fa-youtube"></i></a>

View File

@ -5930,7 +5930,7 @@ only screen and (min-width: 768px) and (max-width: 991px),
color: var(--ztc-text-text-1);
border: 1px solid var(--ztc-text-text-1);
font-size: 14px;
margin-left: 10px;
margin-right: 10px;
}
.vl-offcanvas-overlay {

View File

@ -24,7 +24,7 @@ const MobileMenu: React.FC<MobileMenuProps> = ({ isMobileMenuOpen, toggleMobileM
<div className="homepage1-body">
<div className={`vl-offcanvas ${isMobileMenuOpen ? 'vl-offcanvas-open' : ''}`}>
<div className="vl-offcanvas-wrapper">
<div className="vl-offcanvas-header d-flex justify-content-between align-items-center mb-90">
<div className="vl-offcanvas-header d-flex justify-content-between align-items-center">
<div className="vl-offcanvas-logo">
<Link href="#home" onClick={toggleMobileMenu}>
<img src="/assets/img/logo.webp" alt="logo" style={{ width: '100%', maxWidth: '250px', height: 'auto' }} />
@ -62,16 +62,16 @@ const MobileMenu: React.FC<MobileMenuProps> = ({ isMobileMenuOpen, toggleMobileM
<div className="space20"></div>
<div className="vl-offcanvas-info">
<h3 className="vl-offcanvas-sm-title">Contact Us</h3>
<h3 className="vl-offcanvas-sm-title mb-2">Contact Us</h3>
<span><a href="tel:+16476797651"><i className="fa-solid fa-phone"></i> +1-647-679-7651</a></span>
<span><a href="mailto:info@metatroncubesolutions.com"><i className="fa-regular fa-envelope"></i> info@metatroncubesolutions.com</a></span>
</div>
<div className="space20"></div>
<div className="vl-offcanvas-social">
<h3 className="vl-offcanvas-sm-title">Follow Us</h3>
<h3 className="vl-offcanvas-sm-title mb-2">Follow Us</h3>
<a href="https://www.facebook.com/metatroncubecanada" target="_blank" rel="noopener noreferrer"><i className="fab fa-facebook-f"></i></a>
<a href="https://x.com/MetatroncubeDA" target="_blank" rel="noopener noreferrer"><i className="fa-brands fa-x-twitter"></i></a>
<a href="https://x.com/MetatroncubeDA" target="_blank" rel="noopener noreferrer"><i className="fa-brands fa-twitter"></i></a>
<a href="https://www.linkedin.com/company/metatroncube-software-solutions/posts/?feedView=all" target="_blank" rel="noopener noreferrer"><i className="fab fa-linkedin-in"></i></a>
<a href="https://www.instagram.com/metatron_digitalagency" target="_blank" rel="noopener noreferrer"><i className="fab fa-instagram"></i></a>
<a href="https://www.youtube.com/@metatron_digitalagency" target="_blank" rel="noopener noreferrer"><i className="fab fa-youtube"></i></a>

View File

@ -10468,6 +10468,223 @@ info@metatroncubesolutions.com
<p>Whether you want more traffic, leads, sales, or brand authority, partnering with the right agency transforms marketing from a cost center into a growth engine.</p>
<p>If you're ready to scale your business and dominate your digital space, professional digital marketing support isn't optional it's essential.</p>
`,
},
{
"id": 53,
"hTittle": "How Much Does It Cost to Hire a Small Business Digital Marketing Agency in Toronto?",
"title": "How Much Does It Cost to Hire a Small Business Digital Marketing Agency in Toronto?",
"image": "/assets/images/blog/blog-cards/mar-1-card.webp",
"big_image": "/assets/images/blog/blog-details/mar-1-big-img.webp",
"date": "MARCH 6, 2026",
"user": "Admin",
"category": "Digital Marketing",
"slug": "how-much-does-it-cost-to-hire-a-small-business-digital-marketing-agency-in-toronto",
"seoDesc": "Discover how much it costs to hire a small business digital marketing agency in Toronto. Learn pricing ranges, services included, and how to choose the right agency.",
"metatitle": "Cost to Hire a Digital Marketing Agency in Toronto for Small Businesses",
"metaDisc": "Discover how much it costs to hire a small business digital marketing agency in Toronto. Learn pricing ranges, services included, and how to choose the right agency.",
"description": `
<h4 class="mb-3">Introduction</h4>
<p>For many entrepreneurs and startups, one of the first questions when exploring online marketing is: How much does it cost to hire a digital marketing agency in Toronto?</p>
<p>Toronto is one of Canada's most competitive digital markets, and businesses rely heavily on online visibility to attract customers. Whether you want to improve your Google ranking, run social media ads, or generate leads through content marketing, hiring a digital marketing agency can accelerate your growth.</p>
<p>However, pricing varies depending on services, business size, and campaign complexity. Understanding the cost structure helps you plan your marketing budget wisely.</p>
<h4>Average Cost of a Digital Marketing Agency in Toronto</h4>
<p>The cost of hiring a digital marketing agency in Toronto typically depends on the scope of work and services included.</p>
<p>For small businesses, monthly pricing generally falls within these ranges:</p>
<ul class="ml-4 mb-4">
<li>Basic marketing packages: $1,000 $3,000 per month</li>
<li>Growth marketing packages: $3,000 $6,000 per month</li>
<li>Full-service marketing campaigns: $6,000 $15,000+ per month</li>
</ul>
<p>These packages may include services such as SEO, social media management, paid advertising, content marketing, and performance reporting.</p>
<p>For startups and local businesses, the most common budget range is $2,500 to $5,000 per month, which typically covers essential services like SEO, social media marketing, and content creation.</p>
<h4>Digital Marketing Services and Their Typical Costs</h4>
<p>Different digital marketing services come with different price ranges. Agencies usually combine these into a package depending on your goals.</p>
<h4>SEO (Search Engine Optimization)</h4>
<p>SEO helps your website rank higher in Google search results.</p>
<p>Typical SEO pricing in Canada:</p>
<ul class="ml-4 mb-4">
<li>Local SEO: $800 $2,500 per month</li>
<li>National SEO campaigns: $2,500 $5,000 per month</li>
</ul>
<p>SEO is a long-term strategy and usually takes 36 months to deliver noticeable results.</p>
<h4>Social Media Marketing</h4>
<p>Managing social media profiles, content creation, and engagement is another major service.</p>
<p>Typical cost:</p>
<ul class="ml-4 mb-4">
<li>$800 $1,500 per month for basic management</li>
<li>$2,000 $4,500 for advanced social media campaigns</li>
</ul>
<p>This includes content planning, design, scheduling, and audience engagement.</p>
<h4>PPC and Google Ads Management</h4>
<p>Paid advertising is one of the fastest ways to generate leads.</p>
<p>Typical costs include:</p>
<ul class="ml-4 mb-4">
<li>Management fee: 10% 20% of ad spend</li>
<li>Monthly management cost: $500 $2,000</li>
<li>Setup fee: $300 $2,500</li>
</ul>
<p>This service helps businesses reach targeted audiences quickly.</p>
<h4>Factors That Affect Agency Pricing</h4>
<p>Several factors influence how much you'll pay for a digital marketing agency in Toronto.</p>
<h4>1. Business Goals</h4>
<p>Businesses looking for basic local visibility will pay less than those targeting national or international audiences.</p>
<h4>2. Service Scope</h4>
<p>The more services you requireSEO, social media, paid ads, content marketingthe higher the cost.</p>
<h4>3. Industry Competition</h4>
<p>Competitive industries such as real estate, healthcare, and legal services require stronger marketing strategies and larger budgets.</p>
<h4>4. Agency Expertise</h4>
<p>Experienced agencies with proven results often charge more because they provide stronger strategy, analytics, and execution.</p>
<h4>Is Hiring a Digital Marketing Agency Worth It?</h4>
<p>Many small businesses try to handle marketing internally, but it can quickly become overwhelming.</p>
<p>Working with a digital marketing agency provides:</p>
<ul class="ml-4 mb-4">
<li>Access to marketing experts</li>
<li>Advanced tools and analytics</li>
<li>Data-driven strategies</li>
<li>Consistent campaign management</li>
</ul>
<p>Instead of trial and error, agencies bring experience that helps businesses achieve faster and more sustainable growth.</p>
<h4>How to Choose the Right Agency</h4>
<p>When selecting a digital marketing agency in Toronto, consider:</p>
<ul class="ml-4 mb-4">
<li>Portfolio and case studies</li>
<li>Client reviews and testimonials</li>
<li>Industry experience</li>
<li>Transparency in pricing</li>
<li>Clear reporting and communication</li>
</ul>
<p>A good agency focuses not just on traffic but also on lead generation and return on investment (ROI).</p>
<h4>Conclusion</h4>
<p>Hiring a digital marketing agency in Toronto can cost anywhere from $1,000 to $10,000+ per month, depending on your marketing goals and the services required.</p>
<p>For small businesses, investing in professional digital marketing often leads to higher brand visibility, better lead generation, and long-term business growth.</p>
<p>The key is to choose an agency that understands your business, offers transparent pricing, and delivers measurable results.</p>
`
},
{
"id": 54,
"hTittle": "Digital Marketing Agency Pricing Models Explained",
"title": "Digital Marketing Agency Pricing Models Explained",
"image": "/assets/images/blog/blog-cards/mar-2-card.webp",
"big_image": "/assets/images/blog/blog-details/mar-2-big-img.webp",
"date": "MARCH 7, 2026",
"user": "Admin",
"category": "Digital Marketing",
"slug": "digital-marketing-agency-pricing-models-explained",
"seoDesc": "Learn how digital marketing agencies charge for services. Understand pricing models like retainers, hourly rates, project-based pricing, and performance models.",
"metatitle": "Digital Marketing Agency Pricing Models Explained | Complete Guide",
"metaDisc": "Learn how digital marketing agencies charge for services. Understand pricing models like retainers, hourly rates, project-based pricing, and performance models.",
"description": `
<h4 class="mb-3">Introduction</h4>
<p>When businesses plan to hire a marketing partner, one of the biggest challenges is understanding digital marketing agency pricing models.</p>
<p>Different agencies charge differently depending on their services, expertise, and strategy approach. Some agencies charge monthly retainers, while others work on project-based pricing or hourly consulting.</p>
<p>Understanding these pricing models helps businesses choose the right agency and avoid unexpected costs.</p>
<h4>The Most Common Digital Marketing Pricing Models</h4>
<p>Most digital marketing agencies use one of four pricing structures.</p>
<h4>1. Monthly Retainer Model</h4>
<p>The monthly retainer is the most common pricing model used by digital marketing agencies.</p>
<p>In this model, businesses pay a fixed monthly fee for ongoing marketing services such as:</p>
<ul class="ml-4 mb-4">
<li>SEO optimization</li>
<li>Social media management</li>
<li>Content marketing</li>
<li>Google Ads campaigns</li>
<li>Performance tracking</li>
</ul>
<p>Typical monthly retainer pricing ranges between $2,500 and $10,000+ depending on services and campaign complexity.</p>
<p>This model works best for businesses that want continuous marketing support and long-term growth.</p>
<h4>2. Hourly Pricing Model</h4>
<p>Some agencies charge an hourly rate for specific tasks or consulting.</p>
<p>Typical hourly rates include:</p>
<ul class="ml-4 mb-4">
<li>Freelancers: $60 $120 per hour</li>
<li>Mid-level agencies: $120 $180 per hour</li>
<li>Premium agencies: $180 $300 per hour</li>
</ul>
<p>Hourly pricing is ideal for:</p>
<ul class="ml-4 mb-4">
<li>Marketing audits</li>
<li>Short consultations</li>
<li>Strategy development</li>
<li>One-time website optimization tasks</li>
</ul>
<p>However, this model can become expensive for large projects.</p>
<h4>3. Project-Based Pricing</h4>
<p>In the project-based model, agencies charge a fixed fee for a specific marketing project.</p>
<p>Examples include:</p>
<ul class="ml-4 mb-4">
<li>Website development</li>
<li>Brand identity creation</li>
<li>SEO audits</li>
<li>Marketing strategy planning</li>
</ul>
<p>Project costs usually range between $5,000 and $50,000, depending on complexity and deliverables.</p>
<p>This model works well when businesses need a defined project completed within a specific timeline.</p>
<h4>4. Performance-Based Pricing</h4>
<p>Some agencies offer performance-based pricing, where fees depend on results such as:</p>
<ul class="ml-4 mb-4">
<li>Leads generated</li>
<li>Sales conversions</li>
<li>Revenue growth</li>
</ul>
<p>This model aligns agency incentives with business performance. However, it requires clear metrics and reliable tracking tools.</p>
<p>In some cases, agencies combine a base monthly fee plus performance incentives.</p>
<h4>Which Pricing Model Is Best for Your Business?</h4>
<p>Choosing the right pricing model depends on your marketing goals.</p>
<ul class="ml-4 mb-4">
<li>Monthly retainers are best for long-term growth strategies.</li>
<li>Hourly pricing works well for short consultations.</li>
<li>Project-based pricing suits one-time campaigns.</li>
<li>Performance models are ideal for revenue-focused businesses.</li>
</ul>
<p>Many companies choose a hybrid model combining retainer services with performance bonuses.</p>
<h4>What Services Are Usually Included?</h4>
<p>Most digital marketing packages include:</p>
<ul class="ml-4 mb-4">
<li>Search Engine Optimization (SEO)</li>
<li>Google Ads or PPC management</li>
<li>Social media marketing</li>
<li>Content marketing</li>
<li>Email marketing</li>
<li>Analytics and reporting</li>
</ul>
<p>Full-service marketing packages often bundle these services into a single monthly plan to simplify budgeting.</p>
<h4>Why Pricing Varies Between Agencies</h4>
<p>Digital marketing costs vary due to several factors:</p>
<ul class="ml-4 mb-4">
<li>Agency experience and expertise</li>
<li>Industry competition</li>
<li>Number of services required</li>
<li>Advertising budgets</li>
<li>Technology and tools used</li>
</ul>
<p>Agencies in large cities like Toronto also tend to charge higher rates due to increased competition and operating costs.</p>
<h4>Conclusion</h4>
<p>Digital marketing agencies use several pricing models, including monthly retainers, hourly consulting, project-based pricing, and performance-based fees.</p>
<p>Understanding these models helps businesses choose the right marketing partner and plan a realistic budget.</p>
<p>The most important factor isn't just cost—it's value and results. The right digital marketing agency will help you generate leads, increase visibility, and grow your business sustainably.</p>
`
}
]