Custom Window Replacement in Lancaster, PA and Southcentral PA
Quality Replacement Windows Since 1963
When your windows start letting in drafts, fogging between the panes, or driving up your energy bills, it’s time for custom window replacement done right. Vinyl replacement windows by George J. Grove & Son, Inc. reduce energy consumption, are virtually maintenance-free, and add to the value of your home. Each custom replacement window we install is backed by a manufacturer’s lifetime limited warranty. Because your home has a variety of window shapes, sizes, and configurations, we custom-order every replacement window to meet your home’s exact specifications.
Since 1963, the replacement window experts at George J. Grove & Son, Inc. have been helping homeowners across Lancaster, PA and Southcentral Pennsylvania improve the comfort of their home with replacement vinyl windows.
Our award-winning team is here to help you select and install new custom windows so you can enjoy your home even more.
Double Hung Windows
The most popular replacement window style. Upper and lower sashes tilt in for easy cleaning.
Casement Windows
Casement hinged windows open easily and feature a “washability hinge” that makes cleaning from the inside easy.
Basement Windows
Custom designed with a sash that tilts into the home for ventilation and a dual locking system for maximum security.
Awning Windows
Awning windows are hinged at the top so you can let fresh air and keep rain out.
Slider Windows
When space is at a premium, sliders are energy efficient and complement a wide variety of home styles.
Picture Windows
Flood your room with light and showcase a beautiful view.
Garden Windows
Add character to a kitchen, bathroom or sunroom area with a uniquely designed Garden Window.
Bay & Bow Windows
Bay windows provide a larger center picture window to enjoy a panoramic view of the outdoors.
Architectural Shapes
Add charm, warmth, light, and style to your home while maintaining energy efficiency.
During the in-home estimate, we’ll take measurements to ensure your new windows are a perfect fit.
Choose & Order Windows
We’ll review your options with you and select window styles and sizes needed, then write up a work estimate based on your selections.
Install Windows
Installation usually takes 1-2 days depending on the complexity and number of windows being installed. We’ll ask you to remove window treatments and to clear areas near work areas.
Complete Walkthrough
We’ll show you how your new windows operate and how to clean them. We won’t leave until you’re 100% satisfied with the results.
We offer straightforward pricing, honest guidance, and a seamless custom window replacement experience from start to finish. As a family-owned business that has been serving Lancaster, PA and Southcentral PA for over 60 years, we have built a trusted reputation in the community. We are dedicated to making your home window replacement project as smooth and stress-free as possible.
Skilled, Experienced Installers
Over the years, we have built a team of highly skilled craftsmen who take real pride in their work. We are selective about who joins our team because quality installation matters just as much as the window itself, and every completed project reflects our commitment to doing the job right.
Transparent Pricing and Expert Guidance
A representative from George J. Grove & Son, Inc. will walk you through your custom replacement window options, help you select the right features for your specific home, and guide you through a clear and pressure-free process from initial consultation all the way through to installation.
Quality Products, Lasting Results
We carefully schedule every custom window replacement project on a realistic timeframe so we can reliably meet our commitments. Our team always takes the time to get every detail right, and we consider no job finished until you are completely satisfied with the final installation results.
“Chris from Grove and Son came and replaced 4 windows including a basement window. He arrived on time and was courteous and respectful when going room to room and up and down the steps. Everything was done perfectly and he cleaned up when he was done, so you couldn't even tell he was here. Would highly recommend him as installer along with the rest of Grove and Sons crew.
“
Daniel Y. | Google review
“New windows - easy process, love that it is a locally owned company. The 2 gentleman that installed the 7 windows we had replaced were courteous, quick, professional, and easy to work with. From ordering to installation did take a long time - but I believe that is a testament to how good they are (some scheduling issues due to weather didn't help) I would use this company again in a heartbeat!“
Since 1963, homeowners across Lancaster, PA and Southcentral PA have relied on the custom window replacement experts at George J. Grove & Son, Inc. to select and install the right windows for their home, the right way, at a fair price. Our team is ready to guide you and answer any questions you may have.
Frequently Asked Questions About Window Replacement
Homeowners across Lancaster, PA and Southcentral PA have a lot of questions when it comes to custom window replacement. Here are the answers to the ones we hear most often.
Standard replacement windows come in fixed, pre-set sizes. Custom replacement windows are built or ordered to match the exact dimensions of your existing opening, ensuring a precise fit, a better seal, and a cleaner finished look. At George J. Grove & Son, Inc., we custom-order every window we install.
Common signs include drafts or air leaks around the frame, condensation or fogging between the panes, difficulty opening or closing, and rising energy bills. If you are noticing any of these issues, it is worth scheduling a free estimate to evaluate your options.
Many residential window replacement projects are completed in a single day, that can change depending on several factors. The timeline depends on the number of windows being replaced and any custom sizing requirements. Your George J. Grove & Son, Inc. representative will give you a clear project schedule before work begins.
Yes. Quality replacement windows improve energy efficiency, reduce outside noise, increase curb appeal, and add value to your home. Many homeowners in Lancaster, PA and Southcentral PA see a noticeable difference in comfort and energy costs after replacing older, inefficient windows.
Yes. Every custom replacement window we install is backed by a manufacturer's lifetime limited warranty. Your George J. Grove & Son, Inc. representative can walk you through the specific warranty coverage for the window products you select.
We can replace a single window or every window in your home. Many homeowners start with the windows that are causing the most problems and replace the rest over time. We are happy to help you prioritize based on your budget and needs.
We offer a wide range of replacement window styles, including double hung, casement, sliding, picture, bay, bow, and specialty architectural shapes. Every window is custom-ordered to fit your home's specific openings and design.
Yes. Special financing is available through our partnership with GreenSky Financing. Visit our financing page to learn more about available options.
Get a Quote for Window Replacement
Are you ready to replace your windows? Contact the window experts at George J. Grove & Son, Inc. We can evaluate your existing windows, walk you through your custom replacement window options, and give you a no-obligation quote. We are happy to answer any questions you might have.
"*" indicates required fields
Please note: All calls and appointments are recorded for training and quality purposes.
Your privacy is important to us. No information will be shared with any other agency, business, organization, individual, or entity.
Cookie Consent
We use cookies to improve your experience on our site. By using our site, you consent to cookies.
Cookie Preferences
Manage your cookie preferences below:
Essential cookies enable basic functions and are necessary for the proper function of the website.
Name
Description
Duration
Cookie Preferences
This cookie is used to store the user's cookie consent preferences.
90 days
CloudFlare provides web performance and security solutions, enhancing site speed and protecting against threats.
The cf_use_ob cookie informs Cloudflare to fetch the requested resource from the Always Online cache on the designated port. Applicable values are: 0, 80, and 443. The cf_ob_info and cf_use_ob cookies are persistent cookies that expire after 30 seconds.
session
__cfwaitingroom
The __cfwaitingroom cookie is only used to track visitors that access a waiting room enabled host and path combination for a zone. Visitors using a browser that does not accept cookies cannot visit the host and path combination while the waiting room is active.
session
cf_chl_rc_i
These cookies are for internal use which allows Cloudflare to identify production issues on clients.
session
cf_chl_rc_ni
These cookies are for internal use which allows Cloudflare to identify production issues on clients.
session
cf_chl_rc_m
These cookies are for internal use which allows Cloudflare to identify production issues on clients.
session
__cfruid
Used by the content network, Cloudflare, to identify trusted web traffic.
session
__cf_bm
Cloudflare's bot products identify and mitigate automated traffic to protect your site from bad bots. Cloudflare places the __cf_bm cookie on End User devices that access Customer sites that are protected by Bot Management or Bot Fight Mode. The __cf_bm cookie is necessary for the proper functioning of these bot solutions.
session
__cflb
When enabling session affinity with Cloudflare Load Balancer, Cloudflare sets a __cflb cookie with a unique value on the first response to the requesting client. Cloudflare routes future requests to the same origin, optimizing network resource usage. In the event of a failover, Cloudflare sets a new __cflb cookie to direct future requests to the failover pool.
session
_cfuvid
The _cfuvid cookie is only set when a site uses this option in a Rate Limiting Rule, and is only used to allow the Cloudflare WAF to distinguish individual users who share the same IP address.
session
cf_clearance
Whether a CAPTCHA or Javascript challenge has been solved.
session
__cfseq
Sequence rules uses cookies to track the order of requests a user has made and the time between requests and makes them available via Cloudflare Rules. This allows you to write rules that match valid or invalid sequences. The specific cookies used to validate sequences are called sequence cookies.
session
cf_ob_info
The cf_ob_info cookie provides information on: The HTTP Status Code returned by the origin web server. The Ray ID of the original failed request. The data center serving the traffic
session
Google Tag Manager simplifies the management of marketing tags on your website without code changes.
Name
Description
Duration
cookiePreferences
Registers cookie preferences of a user
2 years
td
Registers statistical data on users' behaviour on the website. Used for internal analytics by the website operator.
session
WhatConverts is a call tracking and lead intelligence platform that captures and attributes leads — including phone calls, form submissions, and chat interactions — to the marketing campaigns, keywords, and traffic sources that generated them. It uses dynamic number insertion (DNI) to swap phone numbers on the page in real time, enabling accurate tracking of which marketing efforts drive inbound calls and conversions. Identifying data is not transmitted without express intent by filling out a contact form or via telephone call.
Used by WhatConverts to store visitor and client tracking data including referral source, visit details, and visitor ID. Used for lead attribution and connecting marketing sources to conversions.
6 months
wc_client_current
Used by WhatConverts to store the current visitor’s client tracking data including referral source and visit details. Works alongside wc_client to maintain up-to-date attribution data for the active session.
Session
wc_swap
Used by WhatConverts to manage phone number swapping for dynamic number insertion (DNI). Stores the phone numbers to be swapped on the page to connect visitor sessions to trackable call numbers.
5 minutes
wc_visitor
Used by WhatConverts to store a unique visitor identifier. Links the visitor’s session to their marketing source, enabling lead and conversion attribution across visits.
2 years
_gd[timestamp]
Used by WhatConverts to track visitor session data for lead attribution and call tracking on a specific page. The timestamp in the cookie name is unique to the visitor session.
Session
A powerful content management system for creating and managing websites easily and efficiently.
Name
Description
Duration
PHPSESSID
PHP session identifier
Session
tk_qs
JetPack sets this cookie to store a randomly-generated anonymous ID which is used only within the admin area and for general analytics tracking.
30 minutes
jpp_math_pass
Verifies that a user answered the math problem correctly while logging in.
session
stnojs
Remember if user do not want JavaScript executed
2 days
showComments
Used to determine if you prefer comments to be shown or hidden when reading the site.
10 years
wordpress_logged_in_
Remember User session
session
trac_form_token
Used as a security token for cross-site request forgery protection.
session
devicePixelRatio
Used to make the site responsive to the visitor’s screen size.
1 year
tk_lr
Jetpack - Stores the unique identifier for the publisher to enable Jetpack to collect data.
1 year
tk_or
Jetpack - Stores the unique identifier for the publisher to enable Jetpack to collect data.
5 Years
tk_r3d
JetPack installs this cookie to collect internal metrics for user activity and in turn improve user experience.
3 days
tk_tc
JetPack sets this cookie to record details on how user's use the website.
session
wp-settings-
Used to persist a user’s wp-admin configuration.
1 Year
wporg_logged_in
Used to check whether the current visitor is a logged-in WordPress.org user.
14 days if you select “Remember Me” when logging in. Otherwise, Session.
wporg_sec
Used to check whether the current visitor is a logged-in WordPress.org user.
14 days if you select “Remember Me” when logging in. Otherwise, Session.
wporg_locale
Used to persist a user’s locale configuration.
1 year
welcome-
Used to record if you’ve chosen to hide the “Welcome” message at the top of the corresponding blog.
permanent
wordpress_test_cookie
Cookie set by WordPress to check if the cookies are enabled on the browser to provide appropriate user experience to the users
session
wp-saving-post
Used to track if there is saved post exists for a post currently being edited. If exists then let user restore the data
1 day
jetpackState
Used for maintaining Jetpack State
session
tix_view_token
Used for session managing private CampTix content
2 days
wp-settings-time-
Time at which wp-settings-{user} was set
1 year
wp-postpass_
Used to maintain session if a post is password protected
10 days
comment_author_url_
Used to track comment author url, if “Save my name, email, and website in this browser for the next time I comment.” checkbox is checked
347 days
comment_author_
Used to tracked comment author name, if “Save my name, email, and website in this browser for the next time I comment.” is checked
347 days
camptix_client_stats
Used to track unique visitors to tickets page on a WordCamp site
1 year
codexUserName
Used to check whether the current visitor is a logged-in WordPress.org user.
6 months
codexUserId
Used to check whether the current visitor is a logged-in WordPress.org user.
6 months
codexToken
Used to check whether the current visitor is a logged-in WordPress.org user. Only set if you select “Keep me logged in” when logging in.
6 months
trac_session
Used to keep anonymous session information.
90 days
Statistics cookies collect information anonymously. This information helps us understand how visitors use our website.
Clarity is a web analytics service that tracks and reports website traffic.
Used to determine whether a user is included in an A / B or Multivariate test.
18 months
_gac_
Contains information related to marketing campaigns of the user. These are shared with Google AdWords / Google Ads when the Google Ads and Google Analytics accounts are linked together.
90 days
__utma
ID used to identify users and sessions
2 years after last activity
__utmt
Used to monitor number of Google Analytics server requests
10 minutes
__utmb
Used to distinguish new sessions and visits. This cookie is set when the GA.js javascript library is loaded and there is no existing __utmb cookie. The cookie is updated every time data is sent to the Google Analytics server.
30 minutes after last activity
__utmc
Used only with old Urchin versions of Google Analytics and not with GA.js. Was used to distinguish between new sessions and visits at the end of a session.
End of session (browser)
__utmz
Contains information about the traffic source or campaign that directed user to the website. The cookie is set when the GA.js javascript is loaded and updated when data is sent to the Google Anaytics server
6 months after last activity
__utmv
Contains custom information set by the web developer via the _setCustomVar method in Google Analytics. This cookie is updated every time new data is sent to the Google Analytics server.
2 years after last activity
_ga
ID used to identify users
2 years
_gali
Used by Google Analytics to determine which links on a page are being clicked
30 seconds
_ga_
ID used to identify users
2 years
_gid
ID used to identify users for 24 hours after last activity
24 hours
_gat
Used to monitor number of Google Analytics server requests when using Google Tag Manager
1 minute
Hotjar is a behavior analytics tool that helps site owners understand how visitors use their site through heatmaps, session recordings, surveys, and feedback widgets.
Hotjar cookie. This cookie is set once a visitor completes a poll using the Feedback Poll widget. It is used to ensure that the same poll does not re-appear if it has already been filled in.
365 days
_hjShownFeedbackMessage
This cookie is set when a visitor minimizes or completes Incoming Feedback. This is done so that the Incoming Feedback will load as minimized immediately if they navigate to another page where it is set to show.
365 days
_hjMinimizedTestersWidgets
Hotjar cookie. This cookie is set once a visitor minimizes a Recruit User Testers widget. It is used to ensure that the widget stays minimizes when the visitor navigates through your site.
365 days
_hjDoneTestersWidgets
Hotjar cookie. This cookie is set once a visitor submits their information in the Recruit User Testers widget. It is used to ensure that the same form does not re-appear if it has already been filled in.
365 days
_hjMinimizedPolls
Hotjar cookie. This cookie is set once a visitor minimizes a Feedback Poll widget. It is used to ensure that the widget stays minimizes when the visitor navigates through your site.
365 days
_hjSessionStorageTest
This cookie checks if the Hotjar Tracking Code can use Session Storage. If it can, a value of 1 is set.
Session
_hjAbsoluteSessionInProgress
The cookie is set so Hotjar can track the beginning of the user's journey for a total session count. It does not contain any identifiable information.
30 minutes
_hjFirstSeen
The cookie is set so Hotjar can track the beginning of the user's journey for a total session count. It does not contain any identifiable information.
30 minutes
_hjIncludedInPageviewSample
This cookie is set to let Hotjar know whether that visitor is included in the data sampling defined by your site's page view limit.
30 minutes
_hjIncludedInSessionSample
This cookie is set to let Hotjar know whether that visitor is included in the data sampling defined by your site's daily session limit
30 minutes
_hjSession_
A cookie that holds the current session data. This ensues that subsequent requests within the session window will be attributed to the same Hotjar session.
30 minutes
_hjSessionUser_
Hotjar cookie that is set when a user first lands on a page with the Hotjar script. It is used to persist the Hotjar User ID, unique to that site on the browser. This ensures that behavior in subsequent visits to the same site will be attributed to the same user ID.
365 days
_hjSessionTooLarge
Causes Hotjar to stop collecting data if a session becomes too large. This is determined automatically by a signal from the WebSocket server if the session size exceeds the limit.
session
_hjSessionRejected
If present, this cookie will be set to 1 for the duration of a user’s session, if Hotjar rejected the session from connecting to our WebSocket due to server overload. This cookie is only applied in extremely rare situations to prevent severe performance issues.
session
_hjSessionResumed
A cookie that is set when a session/recording is reconnected to Hotjar servers after a break in connection.
session
hjViewportId
This cookie stores user viewport details such as size and dimensions.
Session
_hjptid
This cookie is set for logged in users of Hotjar, who have Admin Team Member permissions. It is used during pricing experiments to show the Admin consistent pricing across the site.
session
_hjTLDTest
When the Hotjar script executes we try to determine the most generic cookie path we should use, instead of the page hostname. This is done so that cookies can be shared across subdomains (where applicable). To determine this, we try to store the _hjTLDTest cookie for different URL substring alternatives until it fails. After this check, the cookie is removed.
session
_hjCookieTest
This cookie checks to see if the Hotjar Tracking Code can use cookies. If it can, a value of 1 is set.
Session
_hjUserAttributesHash
User Attributes sent through the Hotjar Identify API are hashed and cached in this cookie so Hotjar knows when an attribute has changed and needs to be updated. The cookie is refreshed while the visitor stays active.
2 minutes
_hjCachedUserAttributes
This cookie stores User Attributes which are sent through the Hotjar Identify API, whenever the user is not in the sample. These attributes will only be saved if the user interacts with a Hotjar Feedback tool.
session
_hjLocalStorageTest
This cookie is used to check if the Hotjar Tracking Script can use local storage. If it can, a value of 1 is set in this cookie. The data stored in_hjLocalStorageTest has no expiration time, but it is deleted immediately after creating it so the expected storage time is under 100ms.
under 100ms
_hjHasCachedUserAttributes
This cookie lets Hotjar know whether the User Attributes cached in the _hjUserAttributes local storage item are up to date.
session
_hjid
Hotjar cookie. This cookie is set when the customer first lands on a page with the Hotjar script. It is used to persist the random user ID, unique to that site on the browser. This ensures that behavior in subsequent visits to the same site will be attributed to the same user ID.
365 days
hj_visitor
hotjar uses cookies to enhance the user’s experience on our website, for example to complete forms, navigating the site, and identify returning users and offer related content. Users can control the use of cookies at the individual browser level.
Session
_hjIncludedInSample
Hotjar cookie. This session cookie is set to let Hotjar know whether that visitor is included in the sample which is used to generate funnels.
365 days
_hjClosedSurveyInvites
Hotjar cookie. This cookie is set once a visitor interacts with a Survey invitation modal popup. It is used to ensure that the same invite does not re-appear if it has already been shown.
365 days
Google reCAPTCHA helps protect websites from spam and abuse by verifying user interactions through challenges.
Name
Description
Duration
_GRECAPTCHA
Google reCAPTCHA sets a necessary cookie (_GRECAPTCHA) when executed for the purpose of providing its risk analysis.
179 days
Marketing cookies are used to follow visitors to websites. The intention is to show ads that are relevant and engaging to the individual user.
CallRail is a call tracking and analytics service. Its script swaps the phone numbers shown on a page and stores the visitor's referrer, landing page and session ID, so phone calls and form submissions can be attributed to the marketing source that brought the visitor to the site.
Google uses cookies for advertising, including serving and rendering ads, personalizing ads (depending on your ad settings at g.co/adsettings), limiting the number of times an ad is shown to a user, muting ads you have chosen to stop seeing, and measuring the effectiveness of ads.
90 Days
__Secure-1PSID
Targeting cookie. Used to create a user profile and display relevant and personalised Google Ads to the user.
2 years
__Secure-1PSIDCC
Targeting cookie. Used to create a user profile and display relevant and personalised Google Ads to the user.
2 years
__Secure-3PAPISID
Profiles the interests of website visitors to serve relevant and personalised ads through retargeting.
2 years
AEC
AEC cookies ensure that requests within a browsing session are made by the user, and not by other sites. These cookies prevent malicious sites from acting on behalf of a user without that user's knowledge.
6 months
ADS_VISITOR_ID
Cookie required to use the options and on-site web services
2 months
__Secure-3PSIDCC
Targeting cookie. Used to create a user profile and display relevant and personalised Google Ads to the user.
2 years
__Secure-3PSIDTS
Targeting cookie. Used to create a user profile and display relevant and personalised Google Ads to the user.
2 years
__Secure-1PSIDTS
Targeting cookie. Used to create a user profile and display relevant and personalised Google Ads to the user.
2 years
__Secure-1PAPISID
Targeting cookie. Used to create a user profile and display relevant and personalised Google Ads to the user.
2 years
__Secure-3PSID
Targeting cookie. Used to profile the interests of website visitors and display relevant and personalised Google ads.
2 years
Conversion
Google uses cookies for advertising, including serving and rendering ads, personalizing ads (depending on your ad settings at g.co/adsettings), limiting the number of times an ad is shown to a user, muting ads you have chosen to stop seeing, and measuring the effectiveness of ads.
90 days
_gcl_gs
Google uses cookies for advertising, including serving and rendering ads, personalizing ads (depending on your ad settings at g.co/adsettings), limiting the number of times an ad is shown to a user, muting ads you have chosen to stop seeing, and measuring the effectiveness of ads.
90 Days
_gcl_gb
Google uses cookies for advertising, including serving and rendering ads, personalizing ads (depending on your ad settings at g.co/adsettings), limiting the number of times an ad is shown to a user, muting ads you have chosen to stop seeing, and measuring the effectiveness of ads.
90 Days
_gac_gb_
Google uses cookies for advertising, including serving and rendering ads, personalizing ads (depending on your ad settings at g.co/adsettings), limiting the number of times an ad is shown to a user, muting ads you have chosen to stop seeing, and measuring the effectiveness of ads.
90 Days
FPGCLGB
Google uses cookies for advertising, including serving and rendering ads, personalizing ads (depending on your ad settings at g.co/adsettings), limiting the number of times an ad is shown to a user, muting ads you have chosen to stop seeing, and measuring the effectiveness of ads.
90 Days
FPGCLAW
Google uses cookies for advertising, including serving and rendering ads, personalizing ads (depending on your ad settings at g.co/adsettings), limiting the number of times an ad is shown to a user, muting ads you have chosen to stop seeing, and measuring the effectiveness of ads.
90 Days
PixelYourSite is a WordPress plugin that manages advertising pixels and conversion tracking. It stores visit, traffic source, UTM and ad click ID data to attribute conversions to marketing campaigns.