There are a few lines in the series where Data seems to say that he does not age. In “Measure of a Man,” he responds to small talk asking how he is by saying, “My condition does not alter with the passage of time, Commander.” In context, he might mean his emotional condition or lack thereof. But he is usually quite literal.
In “Data’s Day,” he discusses with Troi the possibility that he will marry, but expresses one concern: “I believe I have much to offer a potential mate. However, we cannot grow old together because I will not grow old.”¹ (The writers named him a “positronic” android after Asimov’s, and might have been thinking of The Positronic Man here.) What the question is asking, though, is whether Data superficially looks like he’s getting old. He would know that’s not the same thing at all.
In the alternative timelines of “All Good Things,” Data and Q are the only characters not to visibly age at all in past, present or future. Here is what he looks like twenty-five years into one possible future:
Brent Spiner has also said that, in his opinion, his character should not age as he has. It is possible to interpret what we see on screen either literally, so that Data ages like the actor who plays him, or to suspend our disbelief and tell ourselves that Data always looked the same.
There is also a direct quote (as mentioned by Rand al'Thor) stating that he does appear to age as a human: "Not only does she age in appearance like Data, ...." This is from "Inheritance."
Spoiler for “Inheritance:”
The context in which the characters are discussing how positronic androids age is the revelation that Data’s “mother” was replaced by a positronic android decades ago, unbeknownst to everyone, including herself. This would only be possible if she aged without making any conscious effort to disguise herself. The writers then decided to explain away the fact that years had passed since Data claimed not to age, and Brent Spiner visibly had.
It’s not just that one episode, though. (There are a lot of things that happen in one episode of Star Trek and are never mentioned again that fans just ignore.) The writers repeatedly made an effort to explain away the fact that Data is played by a human actor who breathes, blinks and ages. “Birthright: Part I” has Julian Bashir make a guest appearance just to say how surprised he is that Data has working circulatory and respiratory systems that he doesn’t really need. (By the end of that episode, Data even sleeps and dreams, when he wants to.) The in-universe explanation for why we can see Data blink and breathe and look a decade older is, “Your creator went to a lot of trouble to make you seem human.”
In “Brothers,” Data has a conversation with Dr. Noonian Soong, about why Soong created him, that, if you interpret Data as being designed to age, goes into Soong’s motivations:
SOONG: If you brought a Noophian to Earth, he'd probably look around and say, tear that old village down, it's hanging in rags. Build me something new, something efficient. But to a human, that old house, that ancient wall, it's a shrine, something to be cherished. Again, I ask you, why?
DATA: Perhaps, for humans, old things represent a tie to the past.
SOONG: What's so important about the past? People got sick, they needed money. Why tie yourself to that?
DATA: Humans are mortal. They seem to need a sense of continuity.
SOONG: Ah hah! Why?
DATA: To give their lives meaning. A sense of purpose.
Soong goes on to lead Data into realizing that humans also have children to maintain this continuity with the future. When Data himself created an android daughter, in “The Offspring,” she had complete freedom to choose her own appearance, including her age.
This explanation doesn’t work perfectly when we stop to really think about it: Data’s identical brothers Lore and B4 always look exactly the same age as he, even though they were built years apart and both had been shut down for many years while Data was active. This isn’t just the makeup staff forgetting to make them look different ages, either: they look identical in-universe even to the people who know them best and often pull wacky twin shenanigans. Then there’s that two-parter where Data’s head was left in an underground cave for five hundred years. That’s a thing that happened. (There are a lot of things that happen in one episode ....) We can invent explanations (Maybe both Lore and B4 were cosmetically altered to exactly match the appearance of Data, as both Lore and B4’s Romulan manipulators had a motive to do. Maybe the people who fell for it just weren’t paying good enough attention, etc.) but none is ever given.
If we want to try to reconcile all this into a coherent story, what’s probably going on is that Data does age naturally, and the technology of his time can change his appearance as it could Lal’s (for example, to look like a Romulan). In the alternative timeline where he became Lucasian professor of physics at Cambridge and lost touch with his friends from Starfleet, he chose to look younger, and in the Prime timeline of Generations through Nemesis, he chose to age along with his friends.
Out-of-universe, one person who isn’t buying that it makes sense for an android to age like Brent Spiner because he’s a great enough actor to sell it is Brent Spiner. When asked whether he’ll ever play the role again, he’s repeatedly said things like:
I think I'd look ridiculous in that makeup now, because I'm just too old for that part. And he shouldn't age... I can't play him anymore, that would be silly.
I don’t think that could happen. Look at me. I am a shockingly older gentleman. I don’t see that I could wear that makeup anymore. I think that would look really stupid. I love the character and I wish I started it much younger, but I was already in my mid sixties when I started [joke]. I just don’t think I could get away with it. Yeah they could CGI it, but why not just CGI the whole character and forget about me.
He has voice-acted Data since then, in the series finale of Enterprise, and played an ancestor of the Dr. Soong who built Data to look like his younger self, but not appeared as Data.
Just two weeks ago, though (August 11, 2018), Brent Spiner was asked at a convention whether he would be appearing in the upcoming show about Picard, and facetiously did an impression of Patrick Stewart saying, “I cannot do this show… without Brent Spiner.” He then clarified that, “I haven’t heard anything about it other than that Patrick announced it in Vegas that he’s doing it,” but he was as excited to hear the news as we were. So, it’s possible he might change his mind. He has publicly shared an idea for how Data could come back from the dead if Spiner ever did want to reprise the role.
¹ Thanks to @KevinO for finding this quote!